天天看點

selenium自動化之xpath元素定位

xpath:

即為XML路徑語言(XML Path Language),它是一種用來确定XML文檔中某部分位置的語言。

文法:

表達式 描述
nodename 選取此節點的所有子節點。
/ 從根節點選取。
// 從比對選擇的目前節點選擇文檔中的節點,考慮它們的位置。
. 選取目前節點。
選取目前節點的父節點。
@ 選取屬性。

xpath定位:

一種基于元素路徑查找元素的定位方式

driver.find_element_by_xpath("xpath元素")
           

Xpath常用定位政策

路徑:

絕對路徑:單斜杠(/)開頭逐級編寫,如:/html/body/div/div/input

相對路徑:雙斜杠(//)開頭,确定某個元素即直接寫,全部元素為*

如:

//input

//*

注意:

無論絕對路徑還是相對路徑,/後面必須跟元素的名稱或者*

路徑與屬性

以元素的屬性來定位這個元素,如://*[@屬性= “屬性值”]

@用來修飾元素的屬性

路徑與邏輯

即為多個路徑用邏輯關系方法結合到一起

如://*[@屬性1 =‘屬性值1’ and @屬性2 = ‘屬性值2’]

路徑結合層級

利用父級,子級來定位元素

如://*[@父級屬性 = ‘父級屬性值’]/子級

## Xpath擴充

//*[text() = ‘xxx’] 定位文本值為XXX的元素

//*[contains(@屬性,‘XXX’)] 定位屬性值為XXX的元素

//*[starts-with(@屬性,‘XXX’)] 定位屬性值以XXX開頭的元素