页面元素的定位可以说是WebDriver中最核心的内容了,我们定位元素的目的主要有:操作元素,获取该元素的属性,获取元素的text以及获取元素的数量,WebDriver 为我们提供了以下几种方法来帮我们定位web元素:
通过元素的id获取
通过元素的name获取
通过元素的tag name 获取
通过css xpath 获取
通过xpath 获取
通过class name 获取
通过一部分的link text 获取元素
通过全部的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"; // 需要更改这个URL到你自己的login.html 的文件路径 public static void main(String[] args) throws InterruptedException { WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); //最大化浏览器界面 driver.get(URL); //访问谷哥的首页 ,此处放弃度娘。 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 } } |