如何使用 java 處理 Selenium WebDriver 中的框架?


我們可以在 Selenium WebDriver 中處理框架。HTML 文件中的 <frame> 標籤識別框架。框架用於在另一個 HTML 文件中插入 HTML 文件。

要使用框架,我們應該首先了解框架之間的切換以及識別要切換到的框架。有多種切換到框架的方法:

  • switchTo().frame(n) - 傳遞要切換到的框架的索引作為引數。框架索引從 0 開始。

語法:

driver.switchTo().frame(1), we shall switch to the frame with index 1.
  • switchTo().frame(name) - 傳遞要切換到的框架的 ID 或名稱作為引數。

語法:

driver.switchTo().frame("fname"), we shall switch to the frame with name fname.
  • switchTo.frame(webelement n) - 傳遞要切換到的框架的 Web 元素作為引數。

語法:

driver.switchTo().frame(n), we shall switch to the frame with webelement n.
  • switchTo().defaultContent() – 從框架切換回到主頁。

語法:

driver.switchTo().defaultContent()

示例

程式碼實現。

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;
public class Framehandling{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      String url = "https://the-internet.herokuapp.com/frames";
      driver.get(url);
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      // identify element
      driver.findElement(By.linkText("Nested Frames")).click();
      // switch to frame with frame name and identify inside element
      driver.switchTo().frame("frame-bottom");
      WebElement l = driver.findElement(By.cssSelector("body"));
      System.out.println("Bottom frame text: " +l.getText());
      // switch to main page
      driver.switchTo().defaultContent();
      driver.quit();
   }
}

輸出

更新日期:2020 年 8 月 28 日

1K+ 閱讀量

開啟您的 職業

完成課程即取得認證

開始學習
廣告