1. 程式人生 > >Java+Selenium3方法篇6-findElement之By XPath

Java+Selenium3方法篇6-findElement之By XPath

       前面一篇,介紹了查詢元素的方法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();  
	}

}
       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']