无法针对Safari 11远程运行测试(ssh,CI)

问题描述 投票:2回答:2

[当我尝试通过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+的一部分,因此不再作为扩展安装。>

更新:我发现应该通过测试生成的safaridriver可执行文件在通过ssh登录时由于某种原因而无法生成。示例:

/usr/bin/safaridriver -p 7050

它将直接以非零的退出代码终止,而直接在计算机上运行相同命令将在前台运行safaridriver。由于我希望Jenkins在此计算机上运行测试作业,因此我想解决此问题的想法是在此计算机上启动safaridriver(通过cron或launchctl),然后使用该实例将其连接到我的测试中。但是,到目前为止,我无法使测试(Selenium / Capybara)重新使用现有的safaridriver,而不是始终尝试在其他端口上生成新的safaridriver。任何对此的想法也将不胜感激。

这是我的环境:操作系统:MacOS Sierra 10.12.6浏览器:Safari 11.0.2

提前感谢

当我尝试通过ssh手动或通过Jenkins(存在Safari的计算机是远程从属机器)运行测试时,我无法针对Safari 11运行Ruby / RSpec测试。执行测试时,...

ssh rspec safari safaridriver
2个回答
3
投票

有一种可行的解决方法。首先,您需要创建一个自动工作流或启动SafariDriver的Apple脚本]

Safari App


0
投票

就我而言:

  1. 在OSX主机端如上所述创建了Automator应用程序,并做了一些修改:
© www.soinside.com 2019 - 2024. All rights reserved.