当我尝试处理该警报时,收到“Exception UnexpectedAlertPresentException:警报文本:无”,然后收到“Exception NoAlertPresent”

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

我们正在使用以下内容制作自动化脚本:

  • 行为==1.2.5
  • 碎片==0.7.7
  • firefox 无头浏览器

当导航到特定页面时,我们将执行以下代码:

browser = context.browser
selector_button_checkout = "//*[@id='cart']//div[contains(@class, 'button button-3 localizejs') and text()='CHECKOUT']"
with browser.get_iframe(0) as iframe:
    assert iframe.is_element_present_by_xpath(selector_button_checkout, wait_time=30)

我们收到此错误:

packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response
          raise exception_class(message, screen, stacktrace)
      selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None
      Message:

Exception UnexpectedAlertPresentException: Alert Text: None
Message: 

Traceback (most recent call last):
selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None
Message: 

实际上,网络上没有显示任何警报或提示,但无论如何我们尝试使用此处提供的 Splinter 文档来处理它http://splinter.readthedocs.io/en/latest/iframes-and-alerts.html

我们得到了另一个异常,即

NoAlertPresentException
,所以我们迷路了。

有什么想法吗?

python browser-automation splinter python-behave
2个回答
0
投票

这可能会有所帮助:如何在 Selenium 中处理具有“UnexpectedAlertBehaviour”功能的警报?

对于我们来说,我们使用 FacebookWebDriver 进行 Codeception,有时当您尝试单击或访问不存在或不可见的成员时,它会失败并出现上述错误。

因此,转到问题页面并检查该元素(css 或 xpath)是否可见、可点击等。您可以使用浏览器控制台,$() 用于查询路径,$x() 用于 xpath。


0
投票

我刚刚在使用 Selenium 时遇到了类似的问题。当尝试离开当前正在处理的页面而不需要保存时,可能会发生这种情况的原因之一。 Selenium 无法处理额外的对话。

附加对话的一个示例是,当您正在键入帖子时,您尝试导航到其他页面而不保存或发布您正在键入的帖子。在这种情况下,导航代码会被执行,但您实际上并没有离开页面。

如果有需要单击的按钮,请确保在尝试离开页面之前单击它。当有附加对话时,请勿尝试强制关闭页面,因为强制停止将导致您下次尝试获取“驱动程序”的新实例时失败。

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