[英]clear() method doesn't clears the field in MS EDGE IE11 with Selenium-4.1.2
[英]getWindowHandles method returns incorrect number of window handles using MS EDGE IE11 and Selenium version 4.1.2
最近,我将我的 Selenium 版本从 2.53 升级到 4.1.2,以便能够在 MS EDGE IE11 上测试我们的应用程序。 但是我们在使用 selenium-4.1.2 检索在 MS EDGE IE11 中打开的 windows 数量时间歇性地面临问题
还有其他人遇到过与 Selenium-4.1.2 类似的问题吗?
下面是我在 MS EDGE IE11 上试过的一段代码。 有时我们可以看到它返回正确的号码。 windows 但有时不是。 在检索号码 windows 之前,我们还使用了足够的等待时间。
注意 - 这在带有 Selenium-4.1.2 的 IE11 浏览器上工作得很好
int noOfWindowsOpen = driver.getWindowHandles().size();
期望:它应该总是返回正确的值 no。 windows 打开。
打开新选项卡 / window后,在计算WindowHandles的数量之前,您需要为numberOfWindowsToBe()
引入WebDriverWait ,如下所示:
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();
这似乎是自动化 Edge IE 模式的一个已知限制。 它说:
为确保新的 window 已成功创建并且 IEDriver 已检测到它,您必须不断检查Get Window Handles命令的结果,直到它包含新的 window 的句柄。
你可以试试里面的示例代码:
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();
}
我找到了解决上述问题的方法。
执行之前,请确保ME Edge、IE和IE Driver的所有实例都已关闭。 如果没有,请从任务管理器中强制杀死它们,然后重新运行测试脚本。 脚本将正确识别新的 window。
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.