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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章