前提條件:
在頁面右擊選擇預覽文件後彈出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