Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理在新选项卡中自动打开的新窗口?_Java_Selenium_Webdriverwait_Window Handles_Expected Condition - Fatal编程技术网

Java 如何处理在新选项卡中自动打开的新窗口?

Java 如何处理在新选项卡中自动打开的新窗口?,java,selenium,webdriverwait,window-handles,expected-condition,Java,Selenium,Webdriverwait,Window Handles,Expected Condition,我的测试代码会自动打开新选项卡,然后在新选项卡中自动打开新窗口而不是选项卡 当我使用以下代码时:driver.getWindowHandles返回2个选项卡ID,而不是3个选项卡ID 如果是一个新窗口来计算窗口句柄数,则需要将WebDriverWait归纳为NumberOfWindowToBe2,并且可以使用以下代码块: String mainWindowHandler = driver.getWindowHandle(); // store mainWindowHandler for futu

我的测试代码会自动打开新选项卡,然后在新选项卡中自动打开新窗口而不是选项卡

当我使用以下代码时:driver.getWindowHandles返回2个选项卡ID,而不是3个选项卡ID


如果是一个新窗口来计算窗口句柄数,则需要将WebDriverWait归纳为NumberOfWindowToBe2,并且可以使用以下代码块:

String mainWindowHandler = driver.getWindowHandle(); // store mainWindowHandler for future references
//line of code that opens a new TAB / Window
new WebDriverWait(driver, 5).until(ExpectedConditions.numberOfWindowsToBe(2));  //induce WebDriverWait
Set<String> handles = driver.getWindowHandles(); 
Iterator<String> iterator = handles.iterator(); 
while (iterator.hasNext()) 
{ 
    String subWindowHandler = iterator.next(); 
    if (!mainWindowHandler.equalsIgnoreCase(subWindowHandler))
    {
        driver.switchTo().window(subWindowHandler);
    }
}
工具书类 您可以在以下内容中找到一些相关的详细讨论:


很好,谢谢,等待3个窗口是个问题。。。新的WebDriverWaitdriver,5.不符合预期条件。Windows ToBe3;的编号;。很好!