Edge浏览器SSO网站父窗口启动后子窗口自动关闭,点击后无法跳转求助
问题分析与解决方案
问题场景
操作流程:
- 使用Edge驱动程序导航至单点登录(SSO)网页
- 完成SSO登录后,在主网页输入URL,触发子窗口打开
- 点击子窗口中的选择按钮后,子窗口自动关闭,无法跳转至目标界面
已知信息:
- Edge驱动版本:109.0.1518.78
- Selenium版本:v4+
- 代码逻辑无问题,手动操作时也会出现相同的子窗口关闭且无法跳转的情况
核心原因判断
由于手动操作也能复现问题,基本可以排除Selenium/Edge驱动的代码层面问题,问题根源大概率出在网站自身逻辑、浏览器安全设置或会话传递机制上:
网站自身流程限制:
子窗口的按钮点击逻辑可能包含强制关闭窗口的代码,且目标跳转依赖主窗口的特定状态(如未正确初始化的会话参数),导致跳转失败。Edge浏览器安全/隐私设置拦截:
- 弹出窗口阻止程序可能限制了子窗口的跳转行为;
- 跨站点跟踪阻止设置导致SSO会话无法在子窗口中正常传递,点击按钮后因会话失效触发窗口关闭。
浏览器与驱动版本不匹配:
虽然手动操作也有问题,但如果Edge浏览器版本高于驱动版本(109.0.1518.78),可能存在兼容性问题,加重会话传递或窗口控制的异常。
解决方案
验证网站预期流程:
确认子窗口点击后的正常行为——是否本应关闭子窗口并在主窗口完成跳转?如果是,需在脚本中切换回主窗口并等待页面加载;若手动操作也无跳转,联系网站管理员确认是否存在角色权限、环境配置限制。调整Edge浏览器设置:
- 关闭弹出窗口阻止程序:进入Edge设置 → 隐私、搜索和服务 → 弹出窗口和重定向 → 允许所有网站弹出窗口和重定向;
- 允许跨站点跟踪:进入Edge设置 → 隐私、搜索和服务 → 跟踪预防 → 设置为"基本"或关闭跟踪预防;
- 清除浏览器缓存和Cookie后重新测试。
同步浏览器与驱动版本:
检查Edge浏览器的当前版本(设置 → 关于Microsoft Edge),确保驱动版本与浏览器版本完全一致。若浏览器版本更高,下载对应版本的Edge驱动重新测试。使用无痕模式运行驱动:
在初始化Edge驱动时添加无痕模式配置,排除浏览器扩展、缓存的干扰:from selenium import webdriver from selenium.webdriver.edge.options import Options edge_options = Options() edge_options.add_argument("--incognito") driver = webdriver.Edge(options=edge_options)检查子窗口会话有效性:
在子窗口打开后,通过driver.get_cookies()查看是否携带了SSO认证的Cookie,若缺失,说明会话未正确传递,需检查SSO登录后的Cookie共享设置。
内容的提问来源于stack exchange,提问作者Bhamidipati Vinay
相关产品推荐
相关产品推荐

