Selenium(python):如何访问警报?

问题描述 投票:0回答:1

在通过 Selenium (Python) 与网站交互时,我得到这个弹出窗口:

我想选中复选框,然后单击左侧按钮。

我尝试访问弹出窗口(我认为这是一个警报)

driver.switch_to.alert

然而,这引发了一个

NoAlertPresentException
。当我在 jupyter notebook 中逐步执行此操作时,弹出窗口肯定已经存在(没有时间问题)。

这不是警报吗?我该如何解决这个问题?

非常感谢!

python selenium-webdriver alert
1个回答
0
投票

我还没有想出如何用 Selenium 做到这一点,但我找到了两个解决方法:

1:使用pyautogui

使用 pyautogui 您可以在屏幕上指定 (x,y) 坐标,然后单击鼠标。这个解决方案似乎不是很稳定,因为它取决于屏幕尺寸/分辨率、浏览器的位置和浏览器本身。 我找到了两种让它更可靠的方法:

  • 最大化窗口(这样位置就不再起作用了)
  • 使用相对坐标

2:使用 Firefox 配置文件

在我的例子中,复选框检查可以保存在 firefox 配置文件中,这样弹出窗口就不会再出现了。可以像这样创建 firefox 配置文件:https://support.mozilla.org/en-US/kb/profile-manager-create-remove-switch-firefox-profiles。然后 selenium 可以使用此配置文件。

© www.soinside.com 2019 - 2024. All rights reserved.