当我尝试通过 ssh 手动或通过 Jenkins(Safari 所在的机器是远程从站)运行测试时,我在针对 Safari 11 运行 Ruby/RSpec 测试时遇到了麻烦。
执行测试时,我收到以下错误:
Selenium::WebDriver::Error::WebDriverError:
unable to connect to safaridriver 127.0.0.1:7050
奇怪的是,当我直接登录到 Mac 机器时,我能够运行测试。这使我得出的结论是,可能有一些权限默认情况下会禁用 ssh 会话的执行,但不知道为什么?
此外,据我所知,Safari 驱动程序是 Safari 10+ 的一部分,因此不再作为扩展安装
更新:我发现当我通过 ssh 登录时,由于某种原因,应该由测试生成的 safaridriver 可执行文件无法生成。例子:
/usr/bin/safaridriver -p 7050
它只会以非零退出代码终止,而直接在机器上运行相同的命令将在前台运行 safaridriver。由于我希望 Jenkins 在这台机器上运行测试作业,我克服这个问题的想法是在这台机器上启动 safaridriver(通过 cron 或 launchctl),然后使用这个实例通过我的测试连接到它。但是,到目前为止,我无法让我的测试(Selenium/Capybara)重新使用现有的 safaridriver,而不是总是尝试在不同的端口上生成新的。对此的任何想法也将不胜感激。
这是我的环境:操作系统:MacOS Sierra 10.12.6 浏览器:Safari 11.0.2
提前致谢