【问题标题】:How to handle pop ups automatically - SELENIUM+PYTHON如何自动处理弹窗 - SELENIUM+PYTHON
【发布时间】:2017-10-06 09:14:32
【问题描述】:

如何处理网页中的弹出窗口(在 Web 应用程序测试期间)以在检测到任何弹出对话框时自动执行?

(这意味着在任何情况下都会发生,例如单击按钮时,(或)尽快 打开页面,(或)发生在单击按钮等时。这意味着我们不知道对话框是否会显示。

这个想法是在测试任何 Web 应用程序时自动处理此类问题。

如两个图像所示,例如,如果我单击“交付到”锚标记,将弹出模态窗口。点击链接已完成,但我面临的问题是:

  • 需要知道我是否需要在单击链接或其他内容时处理弹出窗口。如何知道下一步是什么?不仅适用于 amazon.in(如此处所示),而且适用于泛化(任何 URL)。
  • 如果弹出(如图)怎么处理?当我试图处理警报框时 alert = self.driver.switch_to.alert
    alert.accept()
    我试图处理相同的窗口。但似乎一切都不对!

我将分享我引用的示例的链接。我认为可以从任何域访问相同的内容,并且我猜编码将是相同的。 https://www.amazon.in/b/ref=2017Diwali_wave2_shopalldeals_atf?node=3419926031

提前致谢!

【问题讨论】:

  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。
  • @DebanjanB 很抱歉,我已经更新了我的问题,并且我已经尝试更具体一些。
  • 它既不是 pop-up dialog 也不是 alert。这是一个源自HTML DOM 的模态对话框。将其作为常规节点处理。
  • @DebanjanB 谢谢!我遵循 DOM 并理解它是一个模态对话框。我的意思是我想要一种方法来自动识别任何此类 - 无论是pop-up dialogalertmodal dialog 等(如果我不清楚,请原谅)。我正在尝试使遇到这些情况的情况自动化。我指定的alert 代码是为了表明我尝试了迄今为止我所知道的所有方法。
  • 我试过你的用例。当我点击Add to Cart 时,我被重定向到Login Page。您能否更新您的确切手动步骤以及您的代码块?

标签: python selenium


【解决方案1】:

JavascriptExecutor 可以为您工作。请注意您应该在单击调用警报的事件之前执行它。

((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return true; }");

注意:- 在单击调用警报确认框的事件后不要使用它。上面的代码默认将确认框设置为 true 表示如果被调用,您正在接受/单击该 webdriver 会话上的所有确认框上的确定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多