如何使用 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();
}
}输出

广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP