最近,我将Selenium版本从2.53升级到4.1.2,以便能够在MS IE11上测试我们的应用程序。但是,在使用selenium-4.1.2检索MS IE11中打开的窗口数时,我们间歇性地面临问题。
是否还有其他人面临类似的硒问题-4.1.2?
下面是我在MS IE11上尝试过的代码。有时我们可以看到它返回正确的否。窗户,但有时不是。我们还使用了足够的等待时间才能检索到窗口的数量。
注:这在Selenium-4.1.2的IE11浏览器上运行得非常好
int noOfWindowsOpen = driver.getWindowHandles().size();
期望值:它应该始终返回正确的no值。窗户开着。
发布于 2022-04-07 14:55:16
打开新选项卡/窗口后,在计算WindowHandles的数量之前,需要为https://stackoverflow.com/a/46346324/7429447导出https://stackoverflow.com/a/48990165/7429447,如下所示:
driver.get("http://www.google.com");
((JavascriptExecutor) driver).executeScript("window.open('http://facebook.com/');");
new WebDriverWait(driver, 10).until(ExpectedConditions.numberOfWindowsToBe(2));
int noOfWindowsOpen = driver.getWindowHandles().size();
发布于 2022-04-08 00:08:54
它似乎是一个自动边缘IE模式的已知限制。上面写着:
要确保新窗口已经成功创建,并且IEDriver已经检测到它,您必须不断检查获取窗口句柄命令的结果,直到它包含新窗口的句柄为止。
您可以尝试其中的示例代码:
int initialHandleCount = driver.getWindowHandles().size();
driver.findElement(By.id("<Id of the button that will open a new window>")).click();
Set<string> newHandles = driver.getWindowHandles();
while (newHandles.size() == initialHandleCount) {
newHandles = driver.getWindowHandles();
}
发布于 2022-04-11 01:01:08
我找到了解决上述问题的办法.
执行前,请确保关闭了ME Edge、IE和IE驱动程序的所有实例。如果没有,则从任务管理器中强制杀死它们,然后重新运行测试脚本。脚本将正确标识新窗口。
谢谢
https://stackoverflow.com/questions/71783086
复制相似问题