特殊元素定位与操作-iframe
iframe切换
四种切换方式:
- driver.switchTo().frame(index);
- driver.switchTo().frame(id);
- driver.switchTo().frame(name);
- driver.switchTo().frame(WebElement);
切换之后,回到默认内容页面(否则会找不到元素)
- driver.switchTo().defaultContent();
代码示例
package com.test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class SpecialElementLocate {
private static ChromeDriver chromeDriver;
public static void main(String[] args) throws InterruptedException {
//iframe处理
//访问本地HTML文件
chromeDriver.get("D:\\iframe\\a.html");
//在默认的页面去找输入框输入数据
//点击按钮
chromeDriver.findElement(By.id("aa")).sendKeys("111");
Thread.sleep(2000);
//进入第一个内嵌页面中定位元素,输入数据
//切换iframe
chromeDriver.switchTo().frame("bframe");
chromeDriver.findElement(By.id("bb")).sendKeys("222");
Thread.sleep(2000);
//进入第二个内嵌页面中定位元素,输入数据
//切换iframe
chromeDriver.switchTo().frame("cframe");
chromeDriver.findElement(By.id("cc")).sendKeys("333");
Thread.sleep(2000);
//回到默认的页面
chromeDriver.switchTo().defaultContent();
chromeDriver.findElement(By.id("aa")).sendKeys("回到了默认页面中");
}
public static void openChrome() {
System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");
//1.打开Chrome浏览器
chromeDriver = new ChromeDriver();
}
}