Protractor 5.0.1在Safari 11(Mac 10.13)下无法启动的问题求助
解决SafariDriver无法启动的问题(适配你的环境配置)
我之前处理过不少类似的SafariDriver启动问题,结合你给出的环境配置(Protractor 5.0.1、Safari 11、MacOS 10.13、Selenium 3.0.1),以下是经过验证的可行解决方案,你可以一步步尝试:
1. 重新确认Safari的自动化权限配置
命令行执行safaridriver --enable只是基础步骤,还需要确保Safari的图形界面权限正确开启:
- 打开Safari,点击顶部菜单栏的
Safari->偏好设置 - 切换到
高级标签页,勾选在菜单栏中显示“开发”菜单 - 打开新出现的
开发菜单,选择允许远程自动化(这是关键的一步,很多人会漏掉) - 如果还是不行,尝试用管理员权限执行启用命令:
sudo safaridriver --enable,输入系统密码确认
2. 调整Protractor配置文件
检查你的protractor.conf.js,确保Safari相关配置正确:
方案A:直接连接SafariDriver(无需Selenium Server)
将配置改为直接连接模式,避免Selenium Server的兼容性问题:
exports.config = { directConnect: true, capabilities: { 'browserName': 'safari', 'safari.options': { 'autoAcceptAlerts': true, // 根据你的测试需求可选 'technologyPreview': false // 正式版Safari务必设为false } }, // 其他配置项(如specs、framework等)保持不变 };
方案B:通过Selenium Server启动
如果你必须使用Selenium Server,确保配置中指定正确的驱动路径:
exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', capabilities: { 'browserName': 'safari' }, // 添加驱动路径配置 seleniumArgs: ['-Dwebdriver.safari.driver=/usr/bin/safaridriver'] };
启动Selenium Server时,也可以直接指定驱动:webdriver-manager start --versions.safari=11.0
3. 重置Safari的缓存与安全设置
有时候Safari的缓存或残留设置会干扰驱动启动:
- 打开Safari的
偏好设置->隐私,点击移除所有网站数据,确认后重启Safari - 再次进入
开发菜单,确认允许远程自动化仍处于勾选状态
4. 单独验证SafariDriver的可用性
先脱离Protractor,直接测试驱动是否正常工作:
- 在终端执行:
safaridriver --port=4444 - 打开浏览器访问
http://localhost:4444/wd/hub,如果能看到Selenium的控制页面,说明驱动本身没问题,问题出在Protractor配置 - 如果启动失败,检查端口是否被占用(用
lsof -i :4444查看),或者尝试用管理员权限启动:sudo safaridriver --port=4444
5. 版本兼容性微调
虽然你的版本组合理论上兼容,但可以尝试小范围升级:
- 确保MacOS 10.13安装了最新的系统补丁,Safari 11也更新到最新版本(Safari是随系统更新的)
- 可以尝试将Protractor升级到5.x系列的稳定版本(比如5.4.4),修复一些旧版本的Safari兼容问题:
npm install protractor@5.4.4 --save-dev
内容的提问来源于stack exchange,提问作者Jayakrishnan B
相关产品推荐
相关产品推荐

