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開頭的元素