前面一篇,介绍了查找元素的方法By id,这篇来介绍By XPath。在如何写XPath表达式之前,你需要对XPath有一个基本了解,关于XPath入门,你可以
点击这里
。
下面,通过百度首页,演示如何写百度搜索输入框和百度搜索按钮的XPath表达式。
- package lessons;
- import java.util.concurrent.TimeUnit;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.chrome.ChromeDriver;
- public class FirstScript {
- public static void main(String[] args) {
- System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
- WebDriver driver = new ChromeDriver();
- driver.manage().window().maximize();
- driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
- driver.get("https://www.baidu.com");
- driver.findElement(By.xpath(".//*[@id='kw']")).sendKeys("Java");
- driver.findElement(By.xpath(".//*[@id='su']")).click();
- //关闭并退出浏览器
- //driver.quit();
- }
- }
package lessons;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class FirstScript {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
driver.get("https://www.baidu.com");
driver.findElement(By.xpath(".//*[@id='kw']")).sendKeys("Java");
driver.findElement(By.xpath(".//*[@id='su']")).click();
//关闭并退出浏览器
//driver.quit();
}
}
XPath一般在实际自动化测试项目中用到比较多,虽然有8种元素定位方法,但是XPath如果写熟练了,基本上可以用XPath完成百分之95以上的元素定位。例如,在上面的两个元素,我可以用好几种XPath表达式去描述这个元素。
百度搜索输入框:
.//*/input[@id='kw']
.//*/input[@name='wd']
.//*/input[@class='s_ipt']
搜索提交按钮:
.//*/input[@id='su']
.//*/input[@value='百度一下']
.//*/input[@class='bg s_btn']