51Testing软件测试论坛

标题: 【分享】模态窗口元素定位问题 [打印本页]

作者: abd345    时间: 2016-2-2 09:03
标题: 【分享】模态窗口元素定位问题
我遇到的情况时主窗体是模态窗口,弹出的窗口也是模态窗口,执行脚本时,出现driver挂死的情况。网上找了很多帖子,找到一个可以使用的方法,有出现同样情况的朋友可以试试。
部分代码:
                // 点击新建按钮
                WebElement add = driver.findElement(By.xpath("//nobr[text()='新建']"));
                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即可。如果大家有更好的方法,希望回复学习一下。

作者: prettyfool    时间: 2016-2-3 11:19
else if (winHandle.equals(beforeHandle)) {
                                continue;
}
这句是什么意思,beforeHandle是什么意思
作者: abd345    时间: 2016-2-14 14:16
beforeHandle是原窗口的句柄变量,代码没有贴出来。这句话就是判断是否是原窗口句柄,如果是循环继续。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2