1.XPATH與自動化之間的關系
1.XPATH是一門在XML文檔中查找信息的語言。XPATH可用來在XML文檔中對元素和屬性進行遍歷。
2.XPATH是用來選擇“節點”的一種基於表達式的語言;
3.表達式的格式類似於文件系統,eg. C:\user\admin;
4.XPATH最常用的場景之一就是在自動化中用來選擇HTML DOM 節點;
5.Selenium原生支持XPATH,因此也是selenium自動化測試中作為選擇web 元素的主要方法之一;
2.XPATH簡介
XPATH 包含一個標准函數庫:XPATH含有超過100個內建的函數。可以處理字符串值,數值,日期和時間比較,節點和QName處理,序列處理,邏輯值等等。
3.XPATH術語
有7種類型的節點(Node):元素、屬性、文本、命名空間、處理指令、注釋、文檔節點(或稱為根節點).XML文檔是被作為節點樹來對待的,樹的根被稱為文檔節點或根節點。基本值(Atomic value)是無父或無子的節點。項目(Item)是基本值或者節點。
XPATH節點:
XPATH術語:
– Parent:父節點
– Child:子節點
– Sibling:同胞節點
– Ancestor:先輩節點
– Descendant:后代節點
XPATH術語:
4.XPATH語法
4-1.選取節點
4-2.謂語(Predicates)
謂語用來查找某個特定的節點或者包含某個指定的值的節點。
謂語被嵌在方括號中。
4-3.選取未知節點
4-4.選取若干路徑
5.XPATH軸
5-1.位置路徑表達式
5-2.步包括軸和節點測試
6.XPATH運算符
XPATH 表達式可返回節點集、字符串、邏輯值以及數字。
https://www.cnblogs.com/zhaozhan/archive/2009/09/10/1564332.html
http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
選取當前節點之后的所有同級節點:Following-sibling::子節點標簽名
選取當前節點的父節點:parent::子節點標簽名
選取當前節點之前的所有同級節點:Preceding-sibling::子節點標簽名
7.用Text構建有效的XPATH
語法如下://標簽名[text()=’標簽名對應的文本名稱’]
比如://a[text()=’文本名稱’],文本名稱要完全匹配,包括空格。
8.用Contains關鍵字構建有效的XPATH
語法如下://標簽名[contains(attribute,’屬性的值’)]
比如://a[contains(text(),’忘記密碼’)],其中忘記密碼可以部分包含,不用完全匹配。
//input[contains(@class,’ipt’) and contains(@placeholder,’手機號’)],其中可以使用邏輯的方式去定位元素。
9.用startwith關鍵字構建有效的XPATH
語法如下://標簽名[startwith(attribute,’屬性的開始值開頭’)]
比如://input[starts-with(@class,’xa-emaiOrphone’)]