如何使用selenium firefox webdriver处理多个弹出窗口

时间:2018-02-26 09:31:00

标签: java selenium selenium-webdriver selenium-firefoxdriver

我的情况如下面的SS所示。

Multiple pop ups problem

我正在使用selenium(java)测试一些网络应用程序,在一瞬间我同时获得了4个弹出窗口。我想把它们全部解雇,但实际上我不能得到它们中的3个。

我正在搜索如何处理多个弹出窗口,并找到了这个主题:How to handle multiple alert popup confirmation in selenium? - 但这不是我正在搜索的内容。

第一次driver.switchTo()。alert()正在返回一个警报,我可以将其解雇。但第二次,它是空的,不可能打开剩余的弹出窗口。

我还尝试了使用driver.getWindowHandles()的这个主题(https://sqa.stackexchange.com/questions/8416/how-to-switch-handle-close-particular-popup-window-when-multiple-popups-are-ope),但它只返回一个句柄,因此没有多个窗口可以切换。

所以,我的问题是,我无法获得剩余的三个弹出窗口并解雇它们,任何提示或有人遇到同样的问题?

感谢。

2 个答案:

答案 0 :(得分:0)

尝试获取弹出的文本,String str = driver.switchTo()。alert()。getText()然后尝试从第一个pop切换到另一个

答案 1 :(得分:0)

我有类似的问题,不得不使用autoit而不是selenium来解决它。 试试这个(page_title是弹出窗口的标题,假设你在windows机器上):

from win32com.client import Dispatch
autoit = Dispatch("AutoItX3.Control")

def _window_movement_windows(page_title):
        autoit.WinSetOnTop(page_title, "", 1)
        autoit.WinActivate(page_title, "")
        autoit.WinWaitActive(page_title)

以下是如何安装和使用AutoIt:Calling AutoIt Functions in Python

相关问题