如何在 Selenium 中切換到活動標籤頁?


我們可以在 Selenium 中切換到活動標籤頁。方法 **Keys.chord** 和 **sendKeys **用於開啟新標籤頁。可以使用 Keys.chord 方法一次傳遞多個鍵。

**Keys.CONTROL** 和 **Keys.ENTER** 組合作為引數傳遞給 Keys.chord 方法。這將儲存為一個字串,然後再次作為引數傳遞給 **sendKeys **方法。

語法

String tb = Keys.chord(Keys.CONTROL,Keys.ENTER);
driver.findElement(By.xpath("//*[text()='Company']")).sendKeys(tb);

所有開啟的視窗 ID 都儲存在一個數組列表中。預設情況下,驅動程式已將焦點放在父視窗上。要將焦點切換到新標籤頁,可以使用 **switchTo().window** 方法。

**getWindowHandle** 方法用於儲存活動標籤頁的視窗 ID,然後將其作為引數傳遞給 **switchTo().window** 方法。**getWindowHandles **方法儲存所有已開啟的視窗 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.ArrayList;
public class SwitchActiveTab{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      // wait of 5 seconds
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      driver.get("https://tutorialspoint.tw/about/about_careers.htm");
      // Keys.Chord string
      String tb = Keys.chord(Keys.CONTROL,Keys.ENTER);
      driver.findElement(By.xpath("//*[text()='FAQ']")).sendKeys(tb);
      Thread.sleep(10000);
      // store window ids in array list
      ArrayList<String> wid = new ArrayList<String>(driver.getWindowHandles());
      //switch to active tab
      driver.switchTo().window(wid.get(1));
      System.out.println("Page title of active tab: " + driver.getTitle());
      //switch to parent
      driver.switchTo().window(newTb.get(0));
      System.out.println("Page title of parent window: " + driver.getTitle());
      driver.quit();
   }
}

輸出

更新時間: 28-12-2020

6K+ 瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告