之前總結了使用常見的xpath來定位頁面的元素,其實xpath提供了非常豐富的函式,可供我們定義頁面上任何乙個元素,但是如果僅僅只是為了滿足自動化定位元素的需求的話,常見的幾種方式就足夠,他們既簡單又高效,下面一些是最近遇到的xpath,我們也可以使用它們來定位。
1. parent關鍵字
作用:獲取當前節點的父節點
例項:以下面html為例
welcome to our store
parent的例子: //a[id='book']/parent::li
因為我們用了/所以,它將取得id為book的a元素的直接父節點,即第乙個li元素,等同於使用//li[@class='first']來查詢。
2. child關鍵字
作用:獲取當前節點的子節點
例項:還是以上述html為例
//div[@id='menu']/child::a, 將取得id為menu的div下的直接子節點a元素,如果有多個a的話,都會被選中。
3. 方括號加數字
用法:(xapth)[數字]
還是以上述例子為例,當我們用//div[@id="menu"]//ul//li時所有的li元素都會被選中:我們使用方括號和數字即可選中某乙個特定的li元素,例如:(//div[@id="menu"]//ul//li)[3],只選擇第三個li元素:
注意:這種方法需要謹慎使用,除非沒有更好的選擇,否則不要採用這種定位方法,因為元素的順序可能會發生變化,一旦順序改變,原有的xpath將失效,需要重新定義,這將使自動化很不易於維護。
下面是使用xpath定位時的一些建議:
1. 如果有id, name盡量使用它們,因為它們通常情況下唯一且不會經常改變
2. text()很好用,特別是跟contains關鍵字搭配,但是,如果被測系統支援多語言,自動化需要在不同的語言上執行,就不要使用這個定位方式了,否則自動化根本無法跑起來,當然有解決的辦法,我們在後面可以一起學習
3. 確保xpath可以唯一定位到要查詢的元素,可以使用多層(一般情況下兩到3層就夠了),但是不要太多,否則會影響自動化的效能
4. 不要在text()裡使用=,用contains或者starts-with等關鍵字
5. 不要依賴元素順序來定位,除非已經確定順序不會輕易改變
6. 使用高效的工具來定位元素吧,將會減少很多時間噢
xpath學習 軸 總結
xpath 是一門在 xml 文件中查詢資訊的語言。xpath 可用來在 xml 文件中對元素和屬性進行遍歷。xpath 是 w3c xslt 標準的主要元素,並且 xquery 和 xpointer 同時被構建於 xpath 表達之上。xpath軸 xpath axes 可定義某個相對於當前節點的...
XPath 學習二 語法
xpath 使用路徑表示式來選取 xml 文件中的節點或節點集。節點是通過沿著路徑 path 或者步 steps 來選取的。表示式描述 nodename 選取此節點的所有子節點。從根節點擊取。從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置。選取當前節點。選取當前節點的父節點。選取屬性。在下...
XPath學習 基本語法 二
xpath 是一門在 xml 文件中查詢資訊的語言。xpath 可用來在 xml 文件中對元素和屬性進行遍歷。xpath 是 w3c xslt 標準的主要元素,並且 xquery 和 xpointer 同時被構建於 xpath 表達之上。推薦乙個挺不錯的 裡面有很不錯的例子,下面的例子中紅色字型表示...