Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để đóng một cửa sổ cụ thể bằng Selenium WebDriver với Java?

Chúng ta có thể đóng một cửa sổ cụ thể bằng Selenium webdriver. getWindowHandles getWindowHandle các phương pháp có thể được sử dụng để xử lý các cửa sổ con. Phương thức getWindowHandles được sử dụng để lưu trữ tất cả các chốt cửa sổ đã mở trong cấu trúc Đặt dữ liệu.

Phương thức getWindowHandle được sử dụng để lưu trữ tiêu điểm tay cầm cửa sổ của trình duyệt. Chúng tôi phải thêm nhập java.util.Set nhập java.util.List các câu lệnh để phù hợp Đặt cấu trúc dữ liệu trong mã của chúng tôi.

Theo mặc định, đối tượng trình điều khiển chỉ có thể truy cập các phần tử của cửa sổ mẹ. Để chuyển tiêu điểm của nó từ cửa sổ mẹ sang cửa sổ con, chúng tôi sẽ sử dụng sự trợ giúp của cửa sổ switchTo (). và chuyển id cửa sổ của cửa sổ con làm đối số cho phương thức. Sau đó, để chuyển từ cửa sổ con sang cửa sổ mẹ, chúng tôi sẽ sử dụng sự trợ giúp của cửa sổ switchTo (). và chuyển id xử lý cửa sổ mẹ làm đối số cho phương thức.

Ví dụ

Triển khai mã.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import java.util.List;
import java.util.Set;
public class CloseSpecificWindow {
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.get("https://secure.indeed.com/account/login");
      //implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //window handle of parent window
      String m = driver.getWindowHandle();
      driver.findElement(By.id("login-google-button")).click();
      // store window handles in Set
      Set w = driver.getWindowHandles();
      // iterate window handles
      for (String h: w){
         // switching to each window
         driver.switchTo().window(h);
         String s= driver.getTitle();
         // checking specific window title
         if(s.equalsIgnoreCase("Sign in - Google Accounts")){
            System.out.println("Window title to be closed: "+ driver.getTitle());
            driver.close();
         }
      }
      // switching parent window
      driver.switchTo().window(m);
      driver.quit();
   }
}

Đầu ra

Làm cách nào để đóng một cửa sổ cụ thể bằng Selenium WebDriver với Java?