我想在野生动物园进行测试,使用 selenium 。不幸的是,当我尝试使用Safari调试问题时,出现了一个通知,要求我要么禁用Safari中的自动化,要么退出(所附图片)。为什么我不能像在Chrome和FireFox中那样做(例如:按F12查看DOM)?
注:我使用MacOs Catalina 和Javascript & Python来实现 selenium 元素
xggvc2p61#
此错误消息...
...表示 Safari 浏览器对开发人员和自动化开发人员的WebDriver支持在默认情况下关闭。
根据Testing with WebDriver in Safari中的文档,Safari的WebDriver对开发者的支持默认为关闭。启用 WebDriver 支持取决于您的操作系统。
/usr/bin/safaridriver --enable
sudo /usr/bin/safaridriver --enable
1.塞拉和更早的:1.选择Safari〉Preferences,然后在Advanced标签中,选择菜单栏中的Show Develop menu。1.选择Develop〉Allow Remote Automation。1.授权safaridriver启动承载本地Web服务器的XPC服务。要允许此操作,请手动运行/usr/bin/safaridriver一次,然后按照身份验证提示进行操作。
Safari
Preferences
Advanced
Show Develop menu
Develop
Allow Remote Automation
/usr/bin/safaridriver
hc2pp10m2#
不幸的是,我们似乎无法像geckodriver和chrome webdriver那样暂停测试,与浏览器交互,然后在safaridriver中恢复测试。最接近的选项是在屏幕截图的弹出窗口中选择“停止会话”。我可以看到列出的3个选项是:关闭所有自动化-停止测试并关闭所有自动化设置。这将要求您再次允许远程自动化/启用safaridriver。停止会话-这将停止测试,但使浏览器保持打开状态,以便您可以手动与其交互并使用Web检查器工具。继续会话-关闭弹出窗口并继续测试。
0mkxixxg3#
所以,对于所有其他遇到#Safari并试图自动化它的(沮丧的)开发人员来说,总结一下......由于这个限制,不可能编写自动化。因此,选项包括:1.在其他浏览器(如chrome)中编写并验证其在Safari中是否工作1.在Safari中的其他会话中手动(手动)定位定位器/路径,然后插入到自动化基础结构中并且增加了复杂性- Selenium点击在chrome/ff/edge上工作的很多地方都不工作。所以,可能的解决方案-是在DOM中使用JS-但这也不完美。希望情况会有所改善
plicqrtu4#
这应该能解决你的问题。
warnFromSafari = driver.SwitchTo().Alert(); warnFromSafari.Accept();
4条答案
按热度按时间xggvc2p61#
此错误消息...
...表示 Safari 浏览器对开发人员和自动化开发人员的WebDriver支持在默认情况下关闭。
配置Safari以启用WebDriver支持
根据Testing with WebDriver in Safari中的文档,Safari的WebDriver对开发者的支持默认为关闭。启用 WebDriver 支持取决于您的操作系统。
1.塞拉和更早的:
1.选择
Safari
〉Preferences
,然后在Advanced
标签中,选择菜单栏中的Show Develop menu
。1.选择
Develop
〉Allow Remote Automation
。1.授权safaridriver启动承载本地Web服务器的XPC服务。要允许此操作,请手动运行
/usr/bin/safaridriver
一次,然后按照身份验证提示进行操作。hc2pp10m2#
不幸的是,我们似乎无法像geckodriver和chrome webdriver那样暂停测试,与浏览器交互,然后在safaridriver中恢复测试。最接近的选项是在屏幕截图的弹出窗口中选择“停止会话”。
我可以看到列出的3个选项是:
关闭所有自动化-停止测试并关闭所有自动化设置。这将要求您再次允许远程自动化/启用safaridriver。
停止会话-这将停止测试,但使浏览器保持打开状态,以便您可以手动与其交互并使用Web检查器工具。
继续会话-关闭弹出窗口并继续测试。
0mkxixxg3#
所以,对于所有其他遇到#Safari并试图自动化它的(沮丧的)开发人员来说,总结一下......由于这个限制,不可能编写自动化。
因此,选项包括:
1.在其他浏览器(如chrome)中编写并验证其在Safari中是否工作
1.在Safari中的其他会话中手动(手动)定位定位器/路径,然后插入到自动化基础结构中
并且增加了复杂性- Selenium点击在chrome/ff/edge上工作的很多地方都不工作。所以,可能的解决方案-是在DOM中使用JS-但这也不完美。
希望情况会有所改善
plicqrtu4#
这应该能解决你的问题。