如何在Selenium中管理非JS弹出窗口?

时间:2017-03-03 18:57:30

标签: javascript html selenium dom

我目前正在测试一个网站,我遇到的一个问题是使用非Javascript弹出窗口。

我尝试过使用Selenium Alert界面。

我做过的样本

Alert a = WebDriver.switchTo().alert()
alert.accept()
alert.dismiss()

这似乎适用于Javascript弹出警报,但不适用于非javascript弹出警报。有没有办法处理不是基于Javascript的Selenium弹出窗口?

2 个答案:

答案 0 :(得分:0)

上次我碰到这样的弹出窗口,这是一个“看不见”的框架。使用您喜欢的浏览器打开页面,在弹出窗口中突出显示某些内容,右键单击它并选择Inspect Element,然后按照其XPath。您可能需要在Selenium中多次切换帧以获得所需的位置。

答案 1 :(得分:0)

如果它的HTML弹出窗口没有特定的东西需要完成,只需像正常的网页一样找到所需的元素。

但是,如果没有找到它的说法元素那么可能有两种情况:

  1. popup存在于iframe
  2. 在此弹出窗口之前,您位于iframe内,但弹出窗口存在于defaultContent View中。
  3. 根据具体情况,请使用以下解决方案:

    对于#1:driver.switchTo().frame(0); //这里0表示第一个iframe,您也可以使用iframe ID

    对于#2:driver.switchTo().defaultContent();