21

我正在 macOS Sierra (10.12.2) 中开发自动化的东西。通过使用 python 的 atomac 支持,我可以启动 safari 浏览器并通过 Safari -> Preferences -> Advanced -> 选中“启用开发菜单”,然后选择“开发 -> 允许远程自动化”启用设置。从自动化的角度来看,这似乎不太一致。我想知道是否有任何 shell 命令可以实现这一点。

允许远程自动化屏幕

4

2 回答 2

9

嗯好的,所以根据我的评论:

您可以defaults write com.apple.Safari IncludeDevelopMenu YES通过终端激活开发菜单。您可以使用subprocess 模块让 python 为您执行此命令。

根据this这个问题似乎可以简单地做到这一点defaults write com.apple.Safari AllowRemoteAutomation 1。然而,自从 Safari 10 以来,这个选项显然受到了更高的安全协议或其他东西的约束(可能是因为引入了系统完整性保护)。我一直在寻找现在保存该设置的 plistfile,但我一直无法找到它。也许它甚至不再存在于实际的 plistfile 中。

我想这给你留下了两个选择:

  1. 使用苹果的 osascript 来模拟所需的鼠标点击。
  2. AskDifferentApple 自己的开发者论坛上重新发布您的问题,因为您更有可能找到对 macOS 有深入了解的人。
于 2017-03-21T06:23:48.057 回答
2

我从以下位置找到了答案:https ://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari

safaridriver --enable

它会提示输入管理员密码,因此有些人设置无密码 sudo(危险)或执行其他解决方法,例如从 Applescript 调用

我测试了它是否适用于 Mojave 和 Safari 12.0.3 并验证它是否适用于开发菜单是否启用,尽管您可能希望自己保存点击并启用它:

defaults write com.apple.Safari IncludeDevelopMenu 1
于 2019-04-02T20:58:41.397 回答