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 慢。
广告