有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Selenium中弹出的java句柄窗口

我正在使用硒,现在有一个条件:

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

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

但我不知道如何处理新打开的弹出窗口。 在这方面需要帮助


共 (3) 个答案

  1. # 2 楼答案

    我们在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的一部分,因此网络驱动程序不知道它。 希望这有帮助

  2. # 3 楼答案

    为了切换,u可以使用增强型For循环:

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

    因此,它将控制从一个驱动程序窗口切换到子窗口

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

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

    driver.switchTo().defaultContent();