在警告框内点击“确定”按钮(Selenium IDE)

73

我需要使用 Selenium 命令点击警告窗口中的“确定”按钮。我尝试使用 assertAlertverifyAlert,但它们不能实现我想要的功能。

是否有可能点击“确定”按钮?如果可以,请有人提供一个 Selenium IDE 命令的示例吗?

14个回答

0

对于Selenium来说,警报是使用JavaScript引发的警报,例如:

 javascript:alert();

有一个基本的检查可以验证您的警报是否实际上是JavaScript警报还是仅用于显示某些消息的基于div的框。如果它是JavaScript警报,则在运行selenium脚本时无法在屏幕上看到它。

如果您能够看到它,则需要获取警报的确定按钮的定位器,并使用selenium.click(locator)来关闭警报。如果您可以提供更多上下文,我们可以更好地帮助您:

  1. IDE或RC?
  2. 警报的HTML代码
  3. 您的selenium脚本。

Vamyip


0
这是Python代码。警告框的问题在于它们有延迟,而Selenium速度太快了,特别是sweet-alerts。对我有效的一个选项是:
while True:
    try:
        driver.find_element_by_xpath('//div[@class="sweet-alert showSweetAlert visible"]')
        break
    except:
        wait = WebDriverWait(driver, 1000)

confirm_button = driver.find_element_by_xpath('//button[@class="confirm"]')
confirm_button.click()

0

assertAlert 应该可以解决问题。我在文档中看到,在页面的 OnLoad 事件处理程序中生成的警报无法以这种方式进行脚本化(由于 ASP.NET 页面生命周期的限制,我自己也遇到过这种情况)。这可能是你遇到的问题吗?


0

这在Windows的Chrome浏览器中似乎仍无法正常工作。 - Johnny Wu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接