如何以编程方式在Safari中启用“允许远程自动化”

时间:2017-05-16 16:15:36

标签: ios selenium selenium-webdriver safari safaridriver

我正在使用带有safari版本10.1的macOS Sierra 10.12.4

我需要以编程方式在Safari的“开发”选项卡中启用“允许远程自动化”选项。

我可以运行以下命令来更改〜/ Library / Preferences中的com.apple.Safari.plist文件,并且可以完美地启用“开发”菜单。

`defaults write com.apple.Safari IncludeDevelopMenu -bool true` 

但是我没有找到任何启​​用“允许远程自动化”的选项

知道哪个plist包含该信息?

2 个答案:

答案 0 :(得分:1)

无法使用您描述的方法切换设置。

从Safari 11开始,您可以使用--enable命令行选项强制safaridriver进行身份验证。验证后,将设置此菜单项。这还将缓存您的其余登录会话的身份验证。随后调用safaridriver(例如,由Selenium库)将不需要进一步设置。

答案 1 :(得分:1)

如果无法修改plist,也可以使用AppleScript完成。为此,首先从Safari首选项启用开发,然后从“开发”菜单中选择“允许远程自动化”。 以下是我编写的AppleScript以启用允许远程自动化(这包括上述两个步骤)。

tell application "Safari" to activate
delay 2
tell application "System Events"
    tell application process "Safari"
        keystroke "," using command down
        set frontmost to true
        tell window 1
            click button "Advanced" of toolbar 1
            delay 2
            set theCheckbox to checkbox 4 of group 1 of group 1 of it
            tell theCheckbox
                if not (its value as boolean) then click theCheckbox
            end tell
            delay 2
            keystroke "w" using command down
            delay 2
        end tell
        tell menu bar item "Develop" of menu bar 1
            click
            delay 2
            click menu item "Allow Remote Automation" of menu 1
            delay 2
        end tell
    end tell
end tell
tell application "Safari" to quit

注意:此处,只有在取消选中时,我才会从safari首选项中启用开发菜单。

希望这会有所帮助..