问个自动化方面的问题
正常流程:点击第一个页面某个按钮跳出弹窗,点击弹窗的“校验”按钮,跳转到新页面,直接关闭新页面,再去第一个页面进行元素的定位操作;
代码实现不了关闭第二个页面,而是直接driver关闭了,也定位不到第一个页面的元素,该怎么弄。
一般来说 跳转到新页面用如下方法:
String currentWindow = driver.getWindowHandle(); Set<String> handles = driver.getWindowHandles(); Iterator<String> it = handles.iterator(); while (it.hasNext()) { String handle = it.next(); if (currentWindow.equals(handle)) continue; driver.switchTo().window(handle); }
如果想回到以前的窗口定位元素,再调用一下switchTo().window方法,传入之前窗口句柄即可。
不太会用。。。新的页面怎么关闭呢
@眈眈逐逐: driver.close()
@ycyzharry: 这个会把第一个页面关闭。新页面不会,是不是没切换到新页面的框架啊
@眈眈逐逐: driver要指向新窗口句柄 参考 https://www.cnblogs.com/sjqq/p/7147727.html
@ycyzharry:
String currentWindow = driver.getWindowHandle();//获取当前窗口句柄
Set<String> handles = driver.getWindowHandles();//获取所有窗口句柄(A+B)
Iterator<String> it = handles.iterator();//判断是否等于A句柄,是就继续循环,否则就跳出去,并关闭窗口。
while (it.hasNext()) {
String handle = it.next();
if (currentWindow.equals(handle))
continue;
driver.switchTo().window(handle);
driver.close();//关闭弹出页面
driver.switchTo().window(currentWindow);//转到A窗口
}
谢谢你,我用这个方法解决了 ^_^