前提条件:
在页面右击选择预览文件后弹出Windows窗口展示图片。但是如何关掉,继续其他操作呢?解答如下:
package 包名;
//引入的各种包
import java.util.ArrayList;
import java.util.Set;
public class source{
public static void main(String[] args) throws InterruptedException {
//登录等操作省略
String handle1 = driver.getWindowHandle(); //获取页面1句柄
System.out.println("句柄1:"+handle1);//输出页面1句柄信息
driver.findElement(By.id("filepreview")).click();//点击跳转页面2
String handle = getLastHandle(driver);//获取页面2句柄
System.out.println("句柄2:"+handle);
driver.switchTo().window(handle); //将driver作用域切到页面2
driver.findElement(By.xpath("页面2数据的xpath信息"));
Thread.sleep(1000);
driver.close(); //关闭打开的页面窗口2
}
/**
*
* @return 当前打开窗口的最后一个句柄
*/
public static String getLastHandle(WebDriver driver) {
Set<String> Allhandles = driver.getWindowHandles();//获取当前打开窗口的所有句柄
ArrayList<String> lst = new ArrayList<String>(Allhandles);
return lst.get(lst.size()-1);
}
}
总体代码大概如上,如果复制进去发现错误,自己动手简单修改即可。
代码运行时可能出现no such window:target window already closed的问题,那就是作用域还停留在作用域2,这时需要切换到页面1
driver.switchTo().window(handle1); //将driver作用域切到页面1
参考资料:https://www.cnblogs.com/xiaozhaoboke/p/11127820.html