1. 元素定位方法
- 通过 ID 定位:如果元素具有唯一的 ID 属性,可以使用 findElement(By.id("elementId")) 方法来定位元素。
- 通过 Name 定位:使用 findElement(By.name("elementName")) 来查找具有指定名称的元素。
- 通过 Class Name 定位:通过 findElement(By.className("className")) 定位具有特定类名的元素。
- 通过 Tag Name 定位:例如 findElement(By.tagName("input")) ,可根据元素的标签名进行定位。
- 通过 Link Text 定位:对于链接元素,可使用 findElement(By.linkText("链接文本")) 。
- 通过 Partial Link Text 定位:如果只知道链接文本的一部分,使用 findElement(By.partialLinkText("部分链接文本")) 。
- 通过 CSS 选择器定位:findElement(By.cssSelector("#idValue")) 或者 .className 等 CSS 选择器规则。
- 通过 XPath 定位:这是一种非常强大和灵活的定位方式,例如 findElement(By.xpath("//input[@id='elementId']")) 。
2. 操作测试对象
- 点击元素:找到元素后,使用 click() 方法进行点击操作,例如 element.click()
- 输入文本:使用 sendKeys() 方法向输入框输入文本,如 element.sendKeys("输入的文本")
- 提交表单:对于表单元素,可以使用 submit() 方法提交表单,例如 formElement.submit()
- 获取元素文本:通过 getText() 方法获取元素的显示文本,如 element.getText()
- 获取html属性:通过getAttribute()方法获取对应的属性值
- 获取页面标题:通过getTitle()方法
- 获取页面url:通过getCurrentUrl()方法
3. 添加等待
如果在进行搜索后马上对结果进行检查,页面可能还没有加载完成,此时检查可能会误判,可以添加等待来等待页面加载完成后再检查。
sleep休眠:只需调用Thread类中的sleep方法即可:
package org.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.List;
import static java.lang.Thread.sleep;
public class Main {
public static void main(String[] args) throws InterruptedException {
test1();
}
public static void test1() throws InterruptedException {
//启动chrome浏览器
WebDriver webDriver = new ChromeDriver();
//打开百度
webDriver.get("https://www.baidu.com");
//定位到输入框
WebElement input = webDriver.findElement(By.name("wd"));
input.sendKeys("自动化测试");
//定位搜索按钮
WebElement button = webDriver.findElement(By.id("su"));
button.click();
sleep(2000);
//检查搜索结果
List<WebElement> elements = webDriver.findElements(By.tagName("em"));
for(WebElement element : elements) {
if(element.getText().equals("自动化测试")) {
System.out.println("测试通过");
}else{
System.out.println("测试失败");
}
}
}
}