【问题标题】:macOS Sierra - how to enable "Allow Remote Automation" using command linemacOS Sierra - 如何使用命令行启用“允许远程自动化”
【发布时间】:2017-01-13 07:41:02
【问题描述】:

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

【问题讨论】:

  • 好的,时间不多了,但是您可以通过终端执行defaults write com.apple.Safari IncludeDevelopMenu YES 来激活开发菜单。我无法轻松找到包含“允许远程自动化”选项的 .plist 文件,但应该有一个,并且您也应该能够在其上使用默认命令。或者您可以使用 Apple 的 osascript 并模拟鼠标点击(不建议这样做)。使用 Python,我会尝试在默认命令上使用 subprocess.Popen() 。今晚晚些时候再试,除非到那时你的问题已经得到解答。
  • 任何希望看到上述评论中描述的有效 AppleScript 解决方案的人都应该查看:stackoverflow.com/a/47387407/332922
  • 嗨@RianSanderson,也许你可以添加这是一个答案。这样,我才能认识到你的贡献。干杯!

标签: python macos safari macos-sierra pyatom


【解决方案1】:

嗯,好吧,根据我的评论:

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

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

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

  1. 使用苹果的 osascript 来模拟所需的鼠标点击。
  2. 在AskDifferent 或Apple's own developers forum 上转发您的问题,因为您更有可能找到对 macOS 有深入了解的人。

【讨论】:

  • 感谢您的回答,但没有奏效。将在闲暇时间与建议的论坛一起去。再次感谢!
【解决方案2】:

我找到了答案:https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari

safaridriver --enable

它会提示输入管理员密码,所以有些人setup passwordless sudo(危险)或do another workaround like calling from an Applescript

我测试了它是否适用于 Mojave 和 Safari 12.0.3,并验证了无论是否启用“开发”菜单都可以正常工作,但您可能希望节省点击次数并启用它:

defaults write com.apple.Safari IncludeDevelopMenu 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多