這篇關於Xpath方法的文章和以前那篇CSS的方法同樣,使用前,須要先掌握一些Xpath的相關知識。固然,網上也有各類工具能夠幫助咱們獲取到元素的Xpath,可是這並不表明着咱們就能夠不用瞭解Xpath的相關知識,畢竟依賴工具永遠沒有依賴本身來着靠譜。可是我也會介紹一下若是簡單快速的獲取元素的Xpath。java
我嘗試過使用一些文章介紹的快速獲取Xpath的工具,可是可能由於這些工具都是依賴於瀏覽器的擴展工具,更新換代比較快,因此文章介紹的工具我並無成功找到。我在這裏要介紹的方法,不須要使用額外的工具。在以前的元素定位(1)中,我已經介紹過了使用瀏覽器的開發者工具來查看網頁的源碼,也獲取一些咱們想要的元素標籤。本章關於Xpath的獲取,咱們也是基於瀏覽器的開發者工具。根絕以前的步驟,咱們點擊知道咱們想要獲取的元素的代碼行。這時,咱們將鼠標移動到該行代碼上,點擊鼠標右鍵,選擇Copy --> Copy Xpath。這樣咱們就獲取到該元素的Xpath表達式了。咱們只有到任何輸入框中選擇粘貼就能夠看到Xpath表達式了。web
例如,咱們那百度首頁舉例。仍是首頁的輸入框,這波操做以後,咱們能夠獲取到輸入框的Xpath表達式://*[@id="kw"]。因此咱們能夠直接使用By.Xpath接口方法:driver.findElement(By.xpath(".//*[@id='kw']")).sendKeys("自動化")。完整代碼展現以下chrome
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("自動化"); driver.findElement(By.xpath(".//*[@id='su']")).click(); //關閉並退出瀏覽器 driver.quit(); } }
固然,機器獲取的Xpath其實都是很死板的,而咱們在現實的運用中,由於不一樣的人的編寫習慣不一樣,其實死板的機器是很容易出問題的。因此咱們最好仍是靠本身來識別比較好。瀏覽器