HTML 中的 Selenium 和 iframe

seleniumautomation testingtesting toolshtml更新于 2026/2/10 9:16:17

我们可以在 Selenium webdriver 中使用 iframe。在 HTML 代码中,框架使用 <iframe>、<frameset> 或 <frame> 标签定义。框架用于将一个 HTML 文档嵌入到另一个 HTML 文档中。

Selenium 默认可以访问父浏览器驱动程序。为了访问框架元素,驱动程序焦点必须从主浏览器窗口转移到框架。有多种方法可以切换到框架 −

  • switchTo().frame(id) - 框架的 ID 或名称作为参数传递。

    语法 − driver.switchTo().frame("id"),切换到具有 ID 的框架。

  • switchTo().frame(m) - 框架的索引作为参数传递。索引从零开始。

    语法 − driver.switchTo().frame(0),切换到页面中的第一个框架。

  • switchTo().frame(webelement n) - 框架的 webelement 作为参数传递。

    语法 − driver.switchTo().frame(l),切换到包含 webelement l 的框架。

  • 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 iFrameMethods{
   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://the-internet.herokuapp.com/frames");
      driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
      // 识别元素并点击
      driver.findElement(By.partialLinkText("Nested")).click();
      // 切换到指定框架名称的框架
      driver.switchTo().frame("frame-bottom");
      WebElement m = driver.findElement(By.cssSelector("body"));
      System.out.println("Frame text: " +m.getText());
      driver.close();
   }
}

输出


相关文章


有用资源