Python 的 Selenium 中 XPath 是什麼?


XPath 是 Selenium 中用於唯一標識網頁上元素的定位器之一。它遍歷 DOM 以到達具有特定屬性(帶或不帶標籤名)的所需元素。

XPath 可以透過以下方式表示:

  • //tagname[@attribute='value']

  • //*[@attribute='value']

XPath 可以透過以下方法建立:

  • OR & AND 表示式。

  • following-sibling 表示式。

  • 父節點。

  • 子節點。

  • 祖先節點。

  • 自身節點。

  • 後代節點。

  • starts-with()

  • ends-with()

  • text()

  • 前序節點。

XPath 有兩種型別:絕對路徑和相對路徑。

相對路徑 XPath:此路徑從 DOM html 的任何部分開始。它由雙斜槓 // 表示,有助於從網頁的任何部分識別元素,並且 XPath 表示式不會很長。

始終最好使用相對路徑 XPath,因為我們不需要從根開始定位元素。因此,如果任何屬性或其值被修改,則受影響導致 XPath 不正確的機率較小。

語法

driver. find_element_by_xpath("//input[@class='gsc-input']")

絕對路徑 XPath:此路徑從根 html 到所需元素。它由單個斜槓 / 表示。它比相對路徑 XPath 更長,如果從根元素開始的任何屬性或其值發生更改,則最終將無法唯一地識別頁面上的所需物件。

語法

driver. find_element_by_xpath("/html/body/div/input")

XPath 可以執行雙向流程,這意味著遍歷可以從父到子以及反之亦然。

從父到子

語法

driver.find_element_by_xpath("//table/tbody/tr[2]/td[2]")

從子到父

語法

driver. find_element_by_xpath("//input[@id='job']/parent::div")

在速度方面,XPath 比 CSS 慢。

更新於:2020年7月29日

4K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告