如何使用Selenoid在Safari浏览器上运行Selenium测试?
Safari自动化测试在Windows/Linux的解决方案
核心限制说明
Safari是Apple专属浏览器,其官方驱动SafariDriver仅支持macOS系统,Windows/Linux没有官方的Safari发行版,Selenoid也无法提供合法的Safari容器镜像(受Apple许可协议限制),这是你在Linux上用Selenoid启动Safari测试失败的根本原因。
针对报错的排查点
你遇到的Could not start a new session报错,大概率是因为Selenoid找不到可用的Safari运行环境,可先做以下检查:
- 执行
curl http://localhost:4444/wd/hub/status验证Selenoid服务是否正常启动 - 查看Selenoid配置文件,确认是否错误指定了不存在的Safari镜像
可行解决方案与变通方法
1. 切换到macOS运行环境
这是最可靠的原生Safari测试方案:
- 本地macOS机器:终端执行
safaridriver --enable开启自动化权限,然后配置Selenide连接本地SafariDriver(无需Selenoid) - CI/CD场景:使用支持macOS的运行器(如GitHub Actions的
macos-latest、GitLab CI的macOS执行器),在任务中先启用SafariDriver,再运行测试
2. 采用云端跨浏览器测试平台
选择提供Safari自动化测试的云端服务,直接在平台上配置测试任务,无需自行维护Safari运行环境,可覆盖Windows/Linux机器发起测试的需求。
3. 近似替代方案(非原生Safari)
如果无法使用macOS或云端服务,可考虑以下近似模拟方案:
- 使用基于WebKit内核的开源浏览器(如Epiphany、Midori),这类浏览器与Safari共享内核,但UI和部分行为存在差异,仅适合基础兼容性验证
- 使用Playwright的WebKit镜像:Playwright提供了Docker化的WebKit环境,可在Linux上运行,能较接近Safari的内核行为,可直接用Playwright编写测试,或结合Selenide适配使用
内容的提问来源于stack exchange,提问作者Владислав Загородний
相关产品推荐
相关产品推荐

