Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ฉันจะปิดหน้าต่างเฉพาะโดยใช้ Selenium WebDriver กับ Java ได้อย่างไร


เราสามารถปิดหน้าต่างเฉพาะด้วย Selenium webdriver getWindowHandles และ getWindowHandle สามารถใช้วิธีการจัดการกับหน้าต่างลูก เมธอด getWindowHandles ใช้เพื่อจัดเก็บที่จับหน้าต่างที่เปิดอยู่ทั้งหมดในโครงสร้างข้อมูล Set

เมธอด getWindowHandle ใช้เพื่อจัดเก็บหมายเลขอ้างอิงหน้าต่างของหน้าต่างเบราว์เซอร์ให้อยู่ในโฟกัส เราต้องเพิ่ม นำเข้า java.util.Set และ นำเข้า java.util.List คำสั่งเพื่อรองรับโครงสร้างข้อมูล Set ในโค้ดของเรา

โดยค่าเริ่มต้น ออบเจ็กต์ไดรเวอร์จะสามารถเข้าถึงองค์ประกอบต่างๆ ของหน้าต่างหลักเท่านั้น เพื่อที่จะเปลี่ยนโฟกัสจากหน้าต่างหลักไปที่หน้าต่างลูก เราจะใช้ความช่วยเหลือของ switchTo().window เมธอดและส่ง ID ตัวจัดการหน้าต่างของหน้าต่างลูกเป็นอาร์กิวเมนต์ของเมธอด จากนั้นหากต้องการย้ายจากหน้าต่างย่อยไปยังหน้าต่างหลัก เราจะใช้ switchTo().window เมธอดและส่ง ID ตัวจัดการหน้าต่างหลักเป็นอาร์กิวเมนต์ไปยังเมธอด

ตัวอย่าง

การติดตั้งโค้ด

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();
   }
}

ผลลัพธ์

ฉันจะปิดหน้าต่างเฉพาะโดยใช้ Selenium WebDriver กับ Java ได้อย่างไร