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

สลับแท็บโดยใช้ Selenium WebDriver กับ Java


เราสามารถสลับแท็บโดยใช้ซีลีเนียม ก่อนอื่นเราต้องเปิดลิงก์ในแท็บใหม่ กุญแจ วิธี .chord พร้อมกับ sendKeys ที่จะนำไปใช้ วิธี Keys.chord ช่วยให้คุณส่งคีย์ได้มากกว่าหนึ่งคีย์พร้อมกัน กลุ่มของคีย์หรือสตริงถูกส่งเป็นอาร์กิวเมนต์ของเมธอด

เราจะผ่าน Keys.CONTROL และ Keys.ENTER เป็นอาร์กิวเมนต์ของวิธี Keys.chord จากนั้นสตริงทั้งหมดจะถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยัง sendKeys กระบวนการ. สุดท้าย ต้องใช้วิธี sendKeys กับลิงก์ที่ระบุโดย driver.findElement วิธีการ

ไวยากรณ์

String clickl = Keys.chord(Keys.CONTROL,Keys.ENTER);
driver.findElement(By.xpath("//*[text()='Terms of Use']")). sendKeys(clickl);

จากนั้นให้ถือรหัสหน้าต่างที่เปิดอยู่ใน ArrayList และเปลี่ยนโฟกัสของไดรเวอร์ไปที่แท็บใหม่ด้วย switchTo กระบวนการ. จากนั้นส่งรหัสหน้าต่างของแท็บใหม่เป็นอาร์กิวเมนต์ไปยังวิธีการนั้น

สุดท้าย หลังจากทำงานบนแท็บใหม่แล้ว เราสามารถย้อนกลับไปยังหน้าต่างหลักด้วย switchTo method และ pass window id ของหน้าต่าง parent เป็นอาร์กิวเมนต์ของ method นั้น

ให้เราสลับไปมาระหว่างสองแท็บ -

สลับแท็บโดยใช้ Selenium WebDriver กับ Java

ตัวอย่าง

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.ArrayList;
public class SwitchTab{
   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://www.tutorialspoint.com/about/about_careers.htm");
      // wait of 5 seconds
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      // Keys.Chord string
      String clickl = Keys.chord(Keys.CONTROL,Keys.ENTER);
      // open the link in new tab, Keys.Chord string passed to sendKeys
      driver.findElement(
      By.xpath("//*[text()='Terms of Use']")).sendKeys(clickl);
      Thread.sleep(1000);
      // hold all window handles in array list
      ArrayList<String> newTb = new ArrayList<String>(driver.getWindowHandles());
      //switch to new tab
      driver.switchTo().window(newTb.get(1));
      System.out.println("Page title of new tab: " + driver.getTitle());
      //switch to parent window
      driver.switchTo().window(newTb.get(0));
      System.out.println("Page title of parent window: " + driver.getTitle());
      driver.quit();
   }
}

ผลลัพธ์

สลับแท็บโดยใช้ Selenium WebDriver กับ Java