根据tagName
By.cssSelector(“input”);
根据ID
By.cssSelector(“input#id”);
By.cssSelector("#id");
根据className(样式名)
By.cssSelector(".className");
By.cssSelector(“input.className”);
查看如下代码第7部分,cssSelector元素定位:
package com.test;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
public class ElementLocate {
private static ChromeDriver chromeDriver;
public static void main(String[] args) throws InterruptedException {
openChrome();
Thread.sleep(1000);
//1.定位百度的搜索框元素,并且输入数据(ID定位)--唯一的
//chromeDriver.findElement(By.id("kw")).sendKeys("自动化测试");
//2.定位百度的搜索框元素,并且输入数据(Name定位)--重复
//chromeDriver.findElement(By.name("wd")).sendKeys("自动化测试");
//3.定位百度的搜索框元素,并且输入数据(tagName定位)--找到的元素是会有多个--不推荐
//chromeDriver.findElement(By.tagName("input")).sendKeys("自动化测试");
//4.定位百度的搜索框元素,并且输入数据(className定位)
//chromeDriver.findElement(By.className("s_ipt")).sendKeys("自动化测试");
//Compound class names not permitted -->复合类名的问题
//chromeDriver.findElement(By.className("bg s_btn")).click(); //不可以用这样的复合类名
//chromeDriver.findElement(By.className("s_btn")).click();
//5.定位“新闻”元素,并且点击(LinkText定位)-->超链接完整文本
//chromeDriver.findElement(By.linkText("新闻")).click();
//6.定位“新闻”元素,并且点击(partialLinkText定位)-->超链接部分文本
//chromeDriver.findElement(By.partialLinkText("闻")).click();
//7.cssSelector元素定位
//(1)tagName定位
//chromeDriver.findElement(By.cssSelector("input"));
//(2)id定位
//chromeDriver.findElement(By.cssSelector("#kw")).sendKeys("自动化测试");
//(3)className定位
//chromeDriver.findElement(By.cssSelector(".s_ipt")).sendKeys("自动化测试");
//chromeDriver.findElement(By.cssSelector(".bg.s_btn")).click();
//css精确定位
//chromeDriver.findElement(By.cssSelector("input[maxlength='255']")).sendKeys("自动化测试");
//css多属性定位
chromeDriver.findElement(By.cssSelector("input[maxlength='255'][autocomplete='off']")).sendKeys("自动化测试");
}
public static void openChrome() {
System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");
//1.打开Chrome浏览器
chromeDriver = new ChromeDriver();
//2.访问百度
chromeDriver.get("http://www.baidu.com");
}
}