Selenium学习(四)----Selenium+Java关闭windows预览弹出窗口

前提条件:
在页面右击选择预览文件后弹出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

猜你喜欢

转载自blog.csdn.net/qq_36800800/article/details/100077879