0

我的测试代码做thomething,然后自动打开新标签并在新标签中自动打开新窗口(不是标签)。

当我使用此代码时:driver.getWindowHandles()它返回 2 个选项卡 ID 而不是 3 个选项卡 ID。

在此处输入图像描述

4

1 回答 1

1

如果它是一个新窗口来计算WindowHandles的数量,您需要诱导WebDriverWaitnumberOfWindowsToBe(2)您可以使用以下代码块:

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);
    }
}

参考

您可以在以下位置找到一些相关的详细讨论:

于 2020-03-29T18:28:51.447 回答