【分享】模态窗口元素定位问题
我遇到的情况时主窗体是模态窗口,弹出的窗口也是模态窗口,执行脚本时,出现driver挂死的情况。网上找了很多帖子,找到一个可以使用的方法,有出现同样情况的朋友可以试试。部分代码:
// 点击新建按钮
WebElement add = driver.findElement(By.xpath("//nobr"));
JavascriptExecutor jse = (JavascriptExecutor) driver;
String js = "window.open(URL)";
jse.executeScript(js);
// 切换到新建窗口
for (String winHandle : driver.getWindowHandles()) {
System.out.println("++++:" + winHandle);
if (winHandle.equals("") || winHandle == null) {
continue;
} else if (winHandle.equals(beforeHandle)) {
continue;
} else {
driver.switchTo().window(winHandle);
break;
}
}
使用JS打开新窗口,新窗口就不是模态对话框了,把上面代码的URL替换成要打开的新窗口URL即可。如果大家有更好的方法,希望回复学习一下。
else if (winHandle.equals(beforeHandle)) {
continue;
}
这句是什么意思,beforeHandle是什么意思 beforeHandle是原窗口的句柄变量,代码没有贴出来。这句话就是判断是否是原窗口句柄,如果是循环继续。
页:
[1]