如何使用 Java 在 Selenium WebDriver 中处理框架?

seleniumautomation testingtesting tools

我们可以在 Selenium WebDriver 中处理框架。框架在 HTML 文档中用 标签标识。框架用于将一个 HTML 文档插入到另一个 HTML 文档中。

要使用框架,我们首先应该了解如何在框架之间切换,并确定要移动到的框架。有多种方法可以切换到框架。

  • switchTo().frame(n) - 将框架的索引作为参数传递给 switchTo() 方法。

    帧索引从 0 开始。

语法 −

driver.switchTo().frame(1),我们将切换到索引为 1 的帧。
  • switchTo().frame(name) - 帧 ID 或名称作为参数传递以切换到该帧。

语法 −

driver.switchTo().frame("fname"),我们将切换到名称为 fname 的帧。
  • switchTo.frame(webelement n) - 将框架网页元素作为参数传递给切换操作。

语法 −

driver.switchTo().frame(n),我们将切换到包含 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);
      // 识别元素
      driver.findElement(By.linkText("Nested Frames")).click();
      // 切换到具有指定框架名称的框架,并识别其内部元素
      driver.switchTo().frame("frame-bottom");
      WebElement l = driver.findElement(By.cssSelector("body"));
      System.out.println("Bottom frame text: " +l.getText());
      // 切换到主页
      driver.switchTo().defaultContent();
      driver.quit();
   }
}

输出


相关文章