如何处理在新标签页中自动打开的新 window?
How to handle new window, which opened automatically in new tab?
我的测试代码做了一些事情,然后自动打开新标签并在新标签中自动打开新 window(不是标签)。
当我使用此代码时:driver.getWindowHandles()
它是 returns 2 个标签 ID 而不是 3 个标签 ID。
如果是新的window来计算WindowHandles的数量你需要为[=11=引入WebDriverWait ],您可以使用以下代码块:
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);
}
}
参考资料
您可以在以下位置找到一些相关的详细讨论:
- Selenium switch focus to tab, which opened after clicking link
我的测试代码做了一些事情,然后自动打开新标签并在新标签中自动打开新 window(不是标签)。
当我使用此代码时:driver.getWindowHandles()
它是 returns 2 个标签 ID 而不是 3 个标签 ID。
如果是新的window来计算WindowHandles的数量你需要为[=11=引入WebDriverWait ],您可以使用以下代码块:
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);
}
}
参考资料
您可以在以下位置找到一些相关的详细讨论:
- Selenium switch focus to tab, which opened after clicking link