頁(yè)面元素的定位可以說(shuō)是WebDriver中核心的內(nèi)容了,我們定位元素的目的主要有:操作元素,獲取該元素的屬性,獲取元素的text以及獲取元素的數(shù)量,WebDriver 為我們提供了以下幾種方法來(lái)幫我們定位web元素:
通過(guò)元素的id獲取
通過(guò)元素的name獲取
通過(guò)元素的tag name 獲取
通過(guò)css xpath 獲取
通過(guò)xpath 獲取
通過(guò)class name 獲取
通過(guò)一部分的link text 獲取元素
通過(guò)全部的link text 獲取元素
元素的定位:
package org.coderinfo.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class FindSingleElements {
private static final String URL = "file:///C:/Desktop/Selenium/login.html"; // 需要更改這個(gè)URL到你自己的login.html 的文件路徑
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize(); //大化瀏覽器界面
driver.get(URL); //訪問(wèn)谷哥的首頁(yè) ,此處放棄度娘。
Thread.sleep(2000); //Wait for page load
driver.findElement(By.id("inputEmail")).sendKeys("coderinfo@163.com"); // use id to find a web element
Thread.sleep(2000);
driver.findElement(By.name("password")).sendKeys("#####"); // use name to find a web element
Thread.sleep(2000);
driver.findElement(By.cssSelector("#inputEmail")).clear(); // use css selector to find a web element
Thread.sleep(2000);
driver.findElement(By.linkText("UseLink")).click(); // use link text to find a web element
Thread.sleep(2000);
driver.findElement(By.partialLinkText("Use")).click(); // use partial link text to find a web element
Thread.sleep(2000);
String formClassName = driver.findElement(By.tagName("form")).getAttribute("class"); //use tag name to find a web element
System.out.println(formClassName);
Thread.sleep(2000);
String text = driver.findElement(By.xpath("/html/body/form/div[1]/div")).getText(); // use xpath to find a web element
System.out.println(text);
String inputText = driver.findElement(By.className("inputClass")).getAttribute("placeholder"); // use class name to find a web element
System.out.println(inputText);
Thread.sleep(5000);
driver.quit(); //徹底退出WebDriver
}
}