元素定位-cssSelector
-
根據tagName
By.cssSelector(“input”); -
根據ID
By.cssSelector(“input#id”);
By.cssSelector("#id"); -
根據className(樣式名)
By.cssSelector(".className");
By.cssSelector(“input.className”);
css精確定位
- 根據元素屬性,屬性名=屬性值,id,class,等都可寫成這種形式
By.cssSelector(“標籤名[屬性=‘屬性值’]”);
如:By.cssSelector(“input[name=‘xxx’]”); - 多屬性
By.cssSelector(“標籤名[屬性1=‘屬性值’][屬性2=‘屬性值’]”);
代碼示例
查看如下代碼第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");
}
}