我使用的是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(); (在兩個方向使用它 - 在那裏和後面) –