使用命令行在 Mac 上安装 Safari webdriver,无需任何用户提示

Install Safari webdriver on Mac using command line without any user prompting

我正在 Mac 10 上为 Safari 8 设置 Selenium 测试。我需要预先安装我们的 Safari 驱动程序,它需要静默进行,没有任何用户提示。

我也手动安装了safari驱动,我看到下面的文件会被改变:

after install, 3 files in ~/Library/preference has been changed.
after install, 7 files in ~/Library/Safari file has been changed
after install, login.keychain in ~/Library/Keychains file has been changed

根据以前的帖子,我试过这些:

  1. Silent install for Safari extension on Mac without any user prompting。 我发现这是有效的,因为它加载了带有扩展名的浏览器:

    open -a Safari SafariDriver.safariextz<br>
    

    但它会让浏览器打开并提示用户:"Are you sure you want to install the extension?"

    然后我按照第一个答案尝试做这些: "install the extension into ~/Library/Safari/Extensions and update ~/Library/Safari/Extensions/Extensions.plist"。这里我把SafariDriver.safariextz复制到这个路径:~/Library/Safari/Extensions。然后我在这个路径~/Library/Safari/Extensions/中找不到Extensions.plist。而且我在这些文件 ~/Library/preference/com.apple.Safari.plistcom.apple.Safari.Extensions.plist

  2. 中也找不到与 safari 驱动程序相关的更改项
  3. I am unable to install my extension to safari from commandline (OS X 10.5.8 Safari 5+)。我使用文章中的这个命令来尝试,仍然有用户提示:

    sudo /Applications/Safari.app/Contents/MacOS/safari /tmp/my-product/my-extension.safariextz<br><br>
    

    有人可以在这里回答我的问题并提供更多详细信息,在此先感谢。

我通过 applescript 意识到了这一点。
1. applescript可以处理prompt
告诉应用程序 "Finder"
将 f 设置为 POSIX 文件“/usr/bin/SafariDriver.safariextz”
如果存在 f 那么
忽略应用程序响应
告诉应用程序 "Safari" 打开 f
结束忽略
告诉应用程序 "System Events"
告诉进程 "Safari"
将 frontmost 设置为 true
重复直到(存在 window 1)并且 window 1 的子角色是 "AXDialog" --
延迟 1
结束重复
单击前面的按钮 1 window -- 安装
结束告诉
结束告诉
如果
结束 结束告诉
2,我试过复制相关文件,比如我的问题中提到的手动安装文件会被修改。我可以在 Safar->preferency->Extesions 中看到驱动程序显示。但是我没有测试是否安装正确。我发现如果 OS 不同,Extensions.plist 将位于不同的文件夹中。
因为我试过两个:
1).在Mac 10.9时,修改如下文件:
~/Library/Preferency:
com.apple.safari.plist
com.apple.finder.plist
~/Library/Safari:
Extensions/WebDriver.safariextz
Extensions/Extensions.plist
~/Library/KeyChain:
log.keychain
2).在Mac 10.10时,将修改如下文件:
~/Library/Preferency:
com.apple.safari.plist
com.apple.finder.plist
com.apple.safari.Extension.plist
~/Library/Safari:
Extensions/WebDriver.safariextz
~/Library/KeyChain:
log.keychain