目录
- HTML铺垫
- Selenium八大定位方式
- 常用定位方式练习
HTML铺垫
- 标签:
<a>
- 属性:href
- 类属性: class
!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试人论坛</title>
</head>
<body>
<a href="https://ceshiren.com/" class="link">链接</a>
</body>
</html>
Selenium定位方式
Selenium提供了八种定位方式:https://www.selenium.dev/documentation/webdriver/elements/locators/
selenium 常用定位方式
#格式:
WebElement Web元素对象 = driver.findElement(By.定位方式(“定位元素”));
示例,ID定位
WebElement fruits = driver.findElement(By.id(“fruits”));
通过 id 定位
- 格式:
WebElement webElement = driver.findElement(By.id("ID属性对应的值"));
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.time.Duration;
/**
* @Author: 霍格沃兹测试开发学社
* @Desc: '更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860'
*/
public class LocatorTest {
public static WebDriver driver;
@BeforeAll
static void setUpAll() {
driver = new ChromeDriver();
//显式等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
}
@AfterAll
static void tearDownAll(){
driver.quit();
}
@Test
void locatorByID() {
driver.get("https://ceshiren.com/");
driver.findElement(By.id("site-logo")).click();
}
}
name 定位
- 格式:
driver.find_element(By.NAME, "Name属性对应的值")
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.time.Duration;
/**
* @Author: 霍格沃兹测试开发学社
* @Desc: '更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860'
*/
public class LocatorTest {
public static WebDriver driver;
@BeforeAll
static void setUpAll() {
driver = new ChromeDriver();
//显式等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
}
@AfterAll
static void tearDownAll(){
driver.quit();
}
@Test
void locatorByName() throws InterruptedException {
driver.get("http://www.baidu.com");
driver.findElement(By.name("tj_briicon")).click();
Thread.sleep(1000);
}
}
css selector 定位
- 格式:
driver.findElement(By.cssSelector("css表达式"));
- css selector获取方式:
- 复制绝对定位
- 编写 css selector 表达式(后面章节详细讲解)
xpath 定位
- 格式:
driver.findElement(By.xpath("xpath表达式"));
- xpath表达式获取方式:
- 复制绝对定位
- 编写 xpath 表达式(后面章节详细讲解)
link 定位
- 格式:
driver.findElement(By.linkText("链接的文本信息"));
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.time.Duration;
/**
* @Author: 霍格沃兹测试开发学社
* @Desc: '更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860'
*/
public class LocatorTest {
public static WebDriver driver;
@BeforeAll
static void setUpAll() {
driver = new ChromeDriver();
//显式等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
}
@AfterAll
static void tearDownAll() {
driver.quit();
}
@Test
void locatorByName() throws InterruptedException {
driver.get("https://ceshiren.com/");
// 输入链接的文本信息定位,并点击
driver.findElement(By.linkText("20220626测试平台开发训练营")).click();
// 强等三秒展示效果
Thread.sleep(3000);
}
}