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

Làm cách nào để đóng cửa sổ trình duyệt con trong Selenium WebDriver bằng Java?

Chúng ta có thể đóng cửa sổ trình duyệt con trong Selenium webdriver. getWindowHandles và các phương thức getWindowHandle có thể được sử dụng để xử lý các cửa sổ con. GetWindowHandles được sử dụng để lưu trữ tất cả các cửa sổ điều khiển đã mở trong cấu trúc Đặt dữ liệu.

Phương thức getWindowHandle được sử dụng để lưu trữ cửa sổ trình duyệt hiện đang hoạt động. Để lặp qua các tay cầm cửa sổ, trình lặp phương pháp được sử dụng. Chúng tôi phải thêm nhập java.util.Set để phù hợp với Đặt và nhập java.util.List nhập java.util.Iterator các câu lệnh để điều chỉnh trình lặp trong mã của chúng tôi.

Theo mặc định, đối tượng trình điều khiển 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ổ xử lý 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 ta 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;
import java.util.Iterator;
public class CloseChildWindow {
   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(2, TimeUnit.SECONDS);
      driver.findElement(By.id("login-google-button")).click();
      // window handles
      Set w = driver.getWindowHandles();
      // window handles iterate
      Iterator t = w.iterator();
      String ch = t.next();
      String pw = t.next();
      // switching child window
      driver.switchTo().window(ch);
      System.out.println("Child window title "+ driver.getTitle());
      // close the child browser window
      driver.close();
      // switching parent window
      driver.switchTo().window(pw);
      System.out.println("Parent window title: "+ driver.getTitle());
      driver.quit();

Đầu ra

Làm cách nào để đóng cửa sổ trình duyệt con trong Selenium WebDriver bằng Java?