我刚刚花了几个小时卡在了使用 Selenium
和 Safari
上,最后才发现需要禁用弹出窗口拦截器来允许我拥有的登录弹出窗口。
我的问题是,在使用 Selenium Grid 2
创建节点/WebDriver 或在代码中创建 RemoteWebDriver
时,是否有一种方法可以禁用弹出窗口拦截器,或两者都可以?
否则,我必须手动记住通过自己打开浏览器更改此设置。目标是使 Selenium 在多台机器上运行,因此能够以编程方式设置这个选项将非常好。
我刚刚花了几个小时卡在了使用 Selenium
和 Safari
上,最后才发现需要禁用弹出窗口拦截器来允许我拥有的登录弹出窗口。
我的问题是,在使用 Selenium Grid 2
创建节点/WebDriver 或在代码中创建 RemoteWebDriver
时,是否有一种方法可以禁用弹出窗口拦截器,或两者都可以?
否则,我必须手动记住通过自己打开浏览器更改此设置。目标是使 Selenium 在多台机器上运行,因此能够以编程方式设置这个选项将非常好。
好的,这是我最终编写的AppleScript:
tell application "System Events" to tell process "Safari"
set frontmost to true
keystroke "," using {command down} -- open preferences
delay 1
tell window "Security"
tell group 1
tell group 1
click checkbox "Block pop-up windows"
end tell
end tell
key code 53 -- close preferences
end tell
end tell
如果您将其保存为popup.as
,则可以像这样运行它:
$ osascript popup.as
请记住,这仅在本地工作,而不适用于Sauce Labs等云服务。