我使用的是IEdriver(32位),IE(安装版本11)和Selenium 3.3.1, 及以下是我用来切换到新窗口的代码。Selenium IE驱动程序找不到新打开的窗口
String parentWin = driver.getWindowHandle();
click(By.cssSelector("#linkID_OpenNewWin"));
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Set<String> winList = driver.getWindowHandles();
for (String winHandle : winList)
{
if (!winHandle.equals(parentWin))
{
driver.switchTo().window(winHandle); // switch focus of WebDriver to the next found window handle
}
}
当我尝试使用IE浏览器的驱动程序来执行上面的代码那么它无法找到新打开的窗口, 但随着Chrome的驱动程序后,按预期执行,所有的窗户得到处理。
谢谢,实际上我只添加了来自测试的示例代码,我会在我的实际代码中使用return语句。并且只有两个窗口。 当我使用驱动程序,然后IE浏览器,我可以看到两个窗口找到set.While与IE浏览器驱动程序,我只能找到一个父窗口集。 –
所以我想这里的问题是一些IE兼容性设置,而不是代码。 –
你可以在开关后试试这个:driver.switchTo()。defaultContent(); (在两个方向使用它 - 在那里和后面) –