特殊元素定位與操作-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();
}
}