【问题标题】:Running safaridriver thorugh ssh always asks password通过 ssh 运行 safari 驱动器总是询问密码
【发布时间】:2017-03-30 20:06:56
【问题描述】:
我想在 virtualbox 上的虚拟机中运行 safari selenium 测试。
我在虚拟盒子中运行 macOS Sierra 10.12。教程说需要运行
/usr/bin/safaridriver
一次,授权它。我这样做了。当我通过虚拟框的 GUI 在终端中启动它们时,测试运行完美。但是当我 ssh 到那个虚拟机时,我总是被要求输入密码。当我无法提供密码时,单独运行 webdriver-manager / selenium 时会出现问题。
Vbox:Safari 10.0、macOS Sierra 10.12
【问题讨论】:
标签:
selenium
ssh
virtualbox
safaridriver
【解决方案1】:
这是 Safari 10 中的一个已知问题,除了通过窗口服务器使用终端外,没有已知的解决方法。
在 Safari 11+ 上,safaridriver 只要求您运行 safaridriver --enable,并且身份验证将被缓存以用于其余的登录会话。因此,您应该将其添加到您的登录机器的脚本中。
如果您有 ssh 并且没有运行窗口服务器,则 safaridriver 将无法工作。目前没有解决方法——机器需要一个 GUI 会话来运行 Safari 和 webdriver。
【解决方案2】:
我遇到了与上述类似的问题,我尝试在 Mac OS Sierra Safari 11 上运行 safaridriver --enable,但仍然提示输入密码。
此外,当我在 selenium node 和 selenium hub 上运行测试时,这些测试是从虚拟盒 safari 内的终端启动的,但是当我 ssh 到该虚拟盒机器启动时同样的过程我得到以下错误
13:45:50 异常是 org.openqa.selenium.SessionNotCreatedException:
无法建立新会话 13:45:50 构建信息:版本:'3.5.3',
修订:'a88d25fe6b',时间:'2017-08-29T12:54:15.039Z'
我发现解决此问题的解决方法是创建 Applescript,它将执行您想要的脚本,然后通过 ssh 执行此 Applescript。
Apple Script
============
Tell Application "Terminal"
activate
set Shell to do Script "your script"
end Tell
现在您可以通过 ssh osascript "${pathToScript}/run.scpt" 调用此脚本