使用Selenium时禁用Safari中的自动化警告

ifmq2ha2  于 2022-12-13  发布在  其他
关注(0)|答案(4)|浏览(286)

我想在野生动物园进行测试,使用 selenium 。
不幸的是,当我尝试使用Safari调试问题时,出现了一个通知,要求我要么禁用Safari中的自动化,要么退出(所附图片)。
为什么我不能像在Chrome和FireFox中那样做(例如:按F12查看DOM)?

注:我使用MacOs Catalina 和Javascript & Python来实现 selenium 元素

xggvc2p6

xggvc2p61#

此错误消息...

...表示 Safari 浏览器对开发人员和自动化开发人员的WebDriver支持在默认情况下关闭

配置Safari以启用WebDriver支持

根据Testing with WebDriver in Safari中的文档,Safari的WebDriver对开发者的支持默认为关闭。启用 WebDriver 支持取决于您的操作系统。

  • 在High Sierra及更高版本中:
  • 您需要启用safaridriver一次。
/usr/bin/safaridriver --enable
  • 如果您要从以前的macOS版本升级,可能需要按如下方式使用sudo:
sudo /usr/bin/safaridriver --enable

1.塞拉和更早的:
1.选择SafariPreferences,然后在Advanced标签中,选择菜单栏中的Show Develop menu
1.选择DevelopAllow Remote Automation
1.授权safaridriver启动承载本地Web服务器的XPC服务。要允许此操作,请手动运行/usr/bin/safaridriver一次,然后按照身份验证提示进行操作。

hc2pp10m

hc2pp10m2#

不幸的是,我们似乎无法像geckodriver和chrome webdriver那样暂停测试,与浏览器交互,然后在safaridriver中恢复测试。最接近的选项是在屏幕截图的弹出窗口中选择“停止会话”。
我可以看到列出的3个选项是:
关闭所有自动化-停止测试并关闭所有自动化设置。这将要求您再次允许远程自动化/启用safaridriver。
停止会话-这将停止测试,但使浏览器保持打开状态,以便您可以手动与其交互并使用Web检查器工具。
继续会话-关闭弹出窗口并继续测试。

0mkxixxg

0mkxixxg3#

所以,对于所有其他遇到#Safari并试图自动化它的(沮丧的)开发人员来说,总结一下......由于这个限制,不可能编写自动化。
因此,选项包括:
1.在其他浏览器(如chrome)中编写并验证其在Safari中是否工作
1.在Safari中的其他会话中手动(手动)定位定位器/路径,然后插入到自动化基础结构中
并且增加了复杂性- Selenium点击在chrome/ff/edge上工作的很多地方都不工作。所以,可能的解决方案-是在DOM中使用JS-但这也不完美。
希望情况会有所改善

plicqrtu

plicqrtu4#

这应该能解决你的问题。

warnFromSafari = driver.SwitchTo().Alert();

warnFromSafari.Accept();

相关问题