Selenium Safari WebDriver初始化异常求助:浏览器已配对其他会话
嘿,我之前也踩过Safari WebDriver这个会话冲突的坑!给你几个亲测有效的解决办法,挨个试试:
解决Safari WebDriver会话冲突的实用方案
彻底清理Safari相关进程
光关掉可视化的Safari窗口没用,后台残留的进程才是祸根。打开终端,运行这两条命令把所有相关进程斩草除根:killall Safari killall safaridriver这能确保没有残留的会话占用资源,避免新会话无法创建。
重置Safari的WebDriver配对状态
Safari的WebDriver会保存配对记录,有时候旧记录会导致冲突。你可以这么操作:- 打开Safari,进入「偏好设置」→「高级」,勾选「在菜单栏中显示“开发”菜单」
- 点击顶部菜单栏的「开发」,先取消勾选「允许远程自动化」,隔几秒再重新勾选回来
- 如果上面的方法没用,直接删除配对配置文件(注意:这会重置Safari的偏好设置,有自定义配置的话先备份):
rm ~/Library/Preferences/com.apple.Safari.plist
检查测试代码的初始化逻辑
有时候是代码里不小心重复初始化了WebDriver实例。仔细检查你的代码,是不是有两处调用了new SafariDriver()或者类似的初始化方法,导致同时启动两个会话。记得测试结束后要调用driver.quit()彻底关闭会话,而不是只关闭浏览器窗口。更新Safari和Safari WebDriver
老版本的Safari或WebDriver可能存在会话管理的已知bug。打开App Store检查Safari更新,同时在终端运行safaridriver --version查看版本,确保WebDriver和Safari版本匹配。如果版本不兼容,更新到最新版大概率能解决问题。
额外提醒:如果是在CI环境或自动化脚本里运行测试,记得在每次测试前都加上清理进程的步骤,避免前一次测试的残留导致冲突。
内容的提问来源于stack exchange,提问作者Rubenee
相关产品推荐
相关产品推荐

