1.id定位
2.link text 與 partial link text 定位
3.css定位
4.XPath 定位
XPath 是一種在 XML 文檔中定位元素的語言。因爲 HTML 可以看做 XML 的一種實現,所以 selenium 用
戶可是使用這種強大語言在 web 應用中定位元素。
如下的代碼,定位最後一個元素:
1.相對路徑定位:層級定位
find_element_by_xpath("//input[@id=’input’]") #通過自身的id屬性定位
find_element_by_xpath("//span[@id=’input-container’]/input") #通過上一級目錄的 id 屬性定位 find_element_by_xpath("//div[@id=’hd’]/form/span/input") #通過上三級目錄的 id 屬性定位 find_element_by_xpath("//div[@name=’q’]/form/span/input")#通過上三級目錄的 name 屬性定位
示例:
絕對定位:以/開頭,非常依賴頁面的順序和位置,不要使用,因爲依賴代碼位置,一旦修改就需要變更
相對定位:以//開頭,不依賴頁面的順序和位置,只看整個頁面中有沒有符合表達式的元素.//*[@id="kw"]
2個屬性值滿足:and 和or
3.文本定位:元素text內容,text()
4.contains(@屬性/text(),value):包含函數
//div[contains(@class,"text-center")]
//div[contains(text(),"訂單")]
5.軸定位:應用場景是當某個元素的各個屬性及其組合都不足以定位時,那麼可以利用其兄弟節點或者父節點等各種可以定位的元素進行定位。
軸運算:
ancestor:祖先節點包括父
parent:父節點
preceding:當前元素節點標籤之前的所有節點.(html頁面先後順序)
preceding-sibling:當前元素節點標籤之前的所有兄弟節點
following:當前元素節點標籤之後的所有節點.(html頁面先後順序)
following-sibling當前元素節點標籤之後的所有兄弟節點
使用語法:
/軸名稱::節點名稱[@屬性=值]
//div[text()="代銷訂單"]/following-sibling::div//*[text()="簽證訂單"]