以下案例使用https://jqueryui.com/网站为例。
一、如何确定元素是否包含在iFarme中?
1、按F12打开发者选项,定位到指定的元素。
2、向上查找元素是否被包含在ifarme标签中。
二、案例演示
package switchto; import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; class SwitchFrame { WebDriver driver;
String url; @BeforeEach
void setUp() throws Exception {
driver = new ChromeDriver();
url = "https://jqueryui.com/datepicker/";
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
driver.get(url);
} @Test
void test() {
// 切换到ifarme窗口
driver.switchTo().frame(0);
// 点击ifarme窗口中的日期选择框
WebElement datepicker = driver.findElement(By.id("datepicker"));
datepicker.click(); // 切回到原来的窗口
driver.switchTo().defaultContent();
// 在主窗口搜索输入框中输入
driver.findElement(By.name("s")).sendKeys("jquery");
} @AfterEach
void tearDown() throws Exception {
Thread.sleep(2000);
driver.quit();
} }
注:有三种方式可以切换到ifarme窗口
1、通过编号切换到ifarme窗口(编号从0开始):driver.switchTo().frame(0);
2、通过ID、name属性切换到ifarme窗口:driver.switchTo().frame("ifarme");
3、通过元素定位切换到ifarme窗口:WebElement e = driver.findElement(By.className("demo-frame"));
driver.switchTo().frame(e);
如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴相互一起学习。
内容具有连惯性,未标注的地方可以看前面的博客,这是一整套关于ava+selenium自动化的内容,从java基础开始。
欢迎关注,转载请注明来源。