处理窗口在Selenium中弹出

时间:2015-03-17 12:56:36

标签: java selenium-webdriver popup

我正在与Selenium合作,现在有一个条件:

当我点击网页上的按钮时会弹出一个窗口弹出窗口。

现在我必须单击一个单选按钮(两个中的一个,即使我们发送了TAB也能正常工作)然后单击“确定”按钮。我在网上搜索并了解了“driver.getWindowHandle()”。

但是我不知道处理新打开的窗口弹出窗口。 需要帮助。

3 个答案:

答案 0 :(得分:1)

为了切换目的,你可以使用增强型for循环:

for (String winHandle : objDriver.getWindowHandles()) {
    objDriver.switchTo().window(winHandle);
}

因此它会将控件从一个驱动程序窗口切换到子窗口。

要与窗口上的元素进行交互,请尝试使用您使用的任何工具查找元素,并在切换到窗口后执行所需的操作

要返回父窗口,您可以使用相同的循环或使用:

driver.switchTo().defaultContent();

答案 1 :(得分:0)

在这篇文章中查看我的答案并阅读评论,以帮助您理解getWindowHandle()和getWindowHandles()之间的区别

Java: focus is not on pop-window during window handling

答案 2 :(得分:0)

我们在Windows / IE C#项目中使用AutoItX - https://www.autoitscript.com/site/处理了这种情况:

AutoItX3 autoIt = new AutoItX3();
var handle = autoIt.WinWaitActive("[window title]", "", 20);
Assert.IsTrue(handle != 0", string.Format("Was not able to find: {0}", [window title]);
autoIt.Send("{ESCAPE}"); // tab may work as well for selection

弹出窗口是一个Windows窗口,而不是IE的一部分,因此WebDriver不知道它。 希望这会有所帮助。