我遇到了MacOS 10.10和Safari 8.0的问题,其中Selenium驱动程序无法与SafariDriver建立连接。此主题中的详细信息:https://code.google.com/p/selenium/issues/detail?id=7933。要在本地运行测试,解决方法是下载Selenium 2.44.0,解压缩包,然后双击SafariDriver.safariextz进行安装。但是,通过SSH连接,这不起作用。我想在每次测试运行之前从命令行安装SafariDriver.safariextz。有关如何从命令行安装.safariextz文件的任何线索吗?
更新:刚刚验证每次从SSH连接启动Safari时(/Applications/Safari.app/Contents/MacOS/Safari)都会删除所有扩展名(Safari-> Preferences-> Extensions为空)。
答案 0 :(得分:1)
如果你在同一台机器上,AppleScript应该可以工作:
# this first part might not be needed
osascript -e 'tell application "Safari"
activate
end tell'
osascript -e 'ignoring application responses
tell application "Safari"
open "'"/path/to/SafariDriver.safariextz"'"
end tell
end ignoring
tell application "System Events"
tell process "Safari"
set frontmost to true
repeat until (exists window 1) and subrole of window 1 is "AXDialog" -- wait until the dialog is displayed.
delay 1
end repeat
click button 1 of front window -- install
end tell
end tell'
如果失败,则可能必须通过打开系统偏好设置>启用对辅助设备和应用程序的访问权限。安全与安全隐私>隐私>辅助功能并检查您要允许访问的应用程序(Safari等)。
更多信息:https://support.apple.com/en-us/HT202866
Jacob Salmela还创建了一个实用程序,可以从命令行执行此操作:
http://jacobsalmela.com/os-x-yosemite-enable-access-assistive-devices-command-line/
答案 1 :(得分:0)
以下解决方法确实对我有用: 升级后,Safari扩展是密钥链的一部分,通过SSH,用户无权访问登录密钥链。解决方案是为EACH ssh会话授予该访问权限。
security -v unlock-keychain -p <password> ~/Library/Keychains/login.keychain
然后使用以下步骤打开Safari应该可以正常工作 /Applications/Safari.app/Contents/MacOS/Safari
对于永久性的&#39;解决方案添加构建步骤,执行shell脚本如下:
#!/bin/bash
keychain="~/Library/Keychains/login.keychain"
security unlock-keychain -p <password> ${keychain} &>/dev/null
if [ $? -ne 0 ];then
echo "Cannot open keychain ${keychain}"
exit 1
fi