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+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告