如何使用 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);
}
}`
我们在点击 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);
}
}`