Chrome 87版本下Selenium启动自动化时多开dummy空浏览器实例的问题咨询
Selenium启动Chrome 87版本时多余dummy空白页的解决方法
- 首先做版本对齐修复:Chrome 87.0.4280.88属于刚发布的带已知bug的小版本,若搭配不匹配的ChromeDriver,会直接出现双进程启动、残留
data:,空白页的问题。必须下载和当前Chrome完全同版本号的ChromeDriver 87.0.4280.88,替换项目中所有路径下的旧驱动,不要用Maven、Gradle拉取的高于/低于87主版本的驱动文件。 - 补全Chrome启动参数配置,不要直接无参实例化
ChromeDriver,参考配置如下:
ChromeOptions options = new ChromeOptions(); // 关闭首次启动引导、默认浏览器检查,避免Chrome自动加载多余启动页 options.addArguments("--no-first-run"); options.addArguments("--no-default-browser-check"); // 强制指定启动初始页为about:blank,覆盖默认加载的data:,地址 options.addArguments("about:blank"); // 无界面运行环境可额外加上--headless=new参数做验证 WebDriver driver = new ChromeDriver(options);
- 排查本地Chrome原生设置干扰:手动打开你本地的Chrome浏览器,进入「设置-启动时」选项卡,将默认的「打开新标签页」调整为「打开指定页面」,手动填入
about:blank;同时临时禁用所有第三方Chrome扩展,排除扩展自动唤起多余标签页的问题。 - 兜底兼容方案:如果以上操作仍无法消除多余的空白实例,说明当前安装的Chrome 87.0.4280.88小版本本身存在启动逻辑bug,可直接将Chrome回退到经过社区验证稳定的87.0.4280.66版本,搭配同版本ChromeDriver使用,可完全规避该异常。
注意:不要尝试在代码中通过遍历窗口句柄、定位空白页后手动关闭的方式兜底,旧版Selenium对窗口句柄的初始化映射存在错位,很容易误关正常承载自动化任务的浏览器窗口。
内容的提问来源于stack exchange,提问作者Bhadrinath Vetry
相关产品推荐
相关产品推荐

