如何使用 Selenium 处理弹出窗口 window? ("driver.switchTo().window(winHandle);" 工作不一致)

How to handle pop-up window using Selenium? ("driver.switchTo().window(winHandle);" not working consistently)

我们在点击 link/button

后切换到新的 window 时遇到了一些问题

我使用下面的代码切换到新的 window。

elem.click();
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle); }

观察到脚本运行不一致,如果我能得到一些一致的代码来切换到新的 window,那就太好了。我觉得切换到新 window.

时存在同步问题

如果@HelpingHands 的建议不起作用问题可能出在几个处理程序同时存在 以下代码可能会有所帮助: 当您创建驱动程序时,请保存适当的处理程序

driver = new FirefoxDriver(profile);
driver.get(uri);
MainWinHandler = driver.getWindowHandle();

然后为了切换

for(String winHandle : driver.getWindowHandles()){
    if(!winHandle.equals(MainWinHandler))
        driver.switchTo().window(winHandle);
}

尝试以下面提到的格式使用

`driver = new FirefoxDriver(profile); 
driver.get(uri); 
String parentWindowHandlerP = driver.getWindowHandle(); 
elem.click(); 
while (driver.getWindowHandles().size() < 2) { 
Thread.sleep(500); 
} 
Set<String> handles = driver.getWindowHandles(); 
for (String windowHandle : handles) { 
if (!windowHandle.equals(parentWindowHandlerP)) { driver.switchTo().window(windowHandle);
}
}`