Mac上Safari扩展的静默安装,没有任何用户提示

时间:2012-04-02 17:56:03

标签: macos selenium safari

我正在Mac上为Safari 5设置Selenium测试。我需要事先安装我们的Safari扩展,它需要静默发生,没有任何用户提示。从以前的帖子中,我发现这有效,因为它加载了扩展名为的浏览器:

打开-a Safari okta.safariextz

但它会打开浏览器并提示用户:“你确定要安装扩展吗?”

Selenium无权访问此提示,无法单击安装。我需要配置Safari,使其不会提示用户安装,而只是允许安装扩展程序。

有没有办法做到这一点?

任何指示赞赏。

-Denali

2 个答案:

答案 0 :(得分:2)

编辑:可能的新方法:答案here可能暗示(有些不清楚),可能会有可能搞乱你未来的Safari升级,你可能会手动通过文件移动和plist hack安装扩展,跳过确认提示。我没有尝试过,但它看起来好像有效:

  

如果您只是为内部部署执行此操作而不介意它是否在Safari升级中断,那么您可以退出Safari,将扩展安装到〜/ Library / Safari / Extensions并更新〜/ Library /Safari/Extensions/Extensions.plist(格式相当明显; / usr / libexec / PlistBuddy对这些事情非常有用)。

你无法做到你所追求的 - 至少,不是我知道的任何命令行开关或plist hack。扩展安装确认是Safari安全模型的核心部分,不容易被规避。

相反,我会考虑使用automator(如果你不熟悉它,想想Selenium但是对于桌面应用程序等等)发送一个点击相应的按钮,然后分发一个启动safari的自动机适当的参数,在扩展对话框出现时发送单击,然后继续运行基于Selenium(而不是基于自动机)的自动化。首先,我将查看以下链接: 通过AppleScript而不是“duplo legos”自动化构建器自动化:http://www.mactech.com/articles/mactech/Vol.21/21.06/UserInterfaceScripting/index.html 非常简要概述宏录制(您点击录制,发送您想要的点击,点击保存,然后您可以重新执行录制的操作):http://automator.us/leopard/features/virtual-user.html 我最喜欢的自动教程简介:http://cjrtools.org/mac/tutorials/autohowto.html

答案 1 :(得分:0)

我不相信有任何方法可以进行静默扩展安装,因为这将是一个安全漏洞。在运行Selenium测试之前,您可能需要尝试合并AppleScript来进行扩展安装。

以下是StackOverflow的另一个问题,其中包含用于Safari扩展重新加载的AppleScript详细信息,可用于您的目的:

How to reload a Safari Extension from the command line?