使用Xpath軸定位當前元素節點的節點集

2021-08-20 04:26:46 字數 2199 閱讀 2714

自動化測試在定位頁面元素時,無法直接使用當前節點屬性定位。而如果使用全路徑定位,造成定位方法值過長,穩定性欠缺,給後期指令碼維護造成困難。

【示例**】

1、通過當前節點定位父節點指定子節點元素。

上圖所示:通過1的name定位2的元素。

xpath示例://*[@name="銀行卡"]/parent::*/child::*[last()]

2、通過當前節點元素定位哥哥節點子元素。

上圖所示:通過1的name定位2的元素。

xpath示例:

//xcuielementtypebutton[@name="登入"]/preceding-sibling::xcuielementtypesecuretextfield[1]

3、通過當前節點元素定位弟弟節點子元素。

上圖所示:通過1的name定位2的元素。

xpath示例:

//xcuielementtypeimage[@name="id"]/

following-

sibling::xcuielementtypestatictext[1]

軸可定義相對於當前節點的節點集。

軸名稱結果

ancestor

選取當前節點的所有先輩(父、祖父等)。

ancestor-or-self

選取當前節點的所有先輩(父、祖父等)以及當前節點本身。

attribute

選取當前節點的所有屬性。

child

選取當前節點的所有子元素。

descendant

選取當前節點的所有後代元素(子、孫等)。

descendant-or-self

選取當前節點的所有後代元素(子、孫等)以及當前節點本身。

following

選取文件中當前節點的結束標籤之後的所有節點。

namespace

選取當前節點的所有命名空間節點。

parent

選取當前節點的父節點。

preceding

選取文件中當前節點的開始標籤之前的所有節點。

preceding-sibling

選取當前節點之前的所有同級節點。

self

選取當前節點。

位置路徑可以是絕對的,也可以是相對的。

絕對路徑起始於正斜槓( / ),而相對路徑不會這樣。在兩種情況中,位置路徑均包括乙個或多個步,每個步均被斜槓分割:

/step/step/...
step/step/...
每個步均根據當前節點集之中的節點來進行計算。

軸(axis)

定義所選節點與當前節點之間的樹關係

節點測試(node-test)

識別某個軸內部的節點

零個或者更多謂語(predicate)

更深入地提煉所選的節點集

軸名稱::節點測試[謂語]
例子

結果child::book

選取所有屬於當前節點的子元素的 book 節點。

attribute::lang

選取當前節點的 lang 屬性。

child::*

選取當前節點的所有子元素。

attribute::*

選取當前節點的所有屬性。

child::text()

選取當前節點的所有文字子節點。

child::node()

選取當前節點的所有子節點。

descendant::book

選取當前節點的所有 book 後代。

ancestor::book

選擇當前節點的所有 book 先輩。

ancestor-or-self::book

選取當前節點的所有 book 先輩以及當前節點(如果此節點是 book 節點)

child::*/child::price

選取當前節點的所有 price 孫節點。

使用xpath的軸 Axis 進行元素定位

使用xpath軸方式可依據在文件數中的元素的相對位置來進行定位,先找到乙個相對好定位的元素,在根據與它相對位置來定位其他元素,可以解決一些元素難以定位的問題。今天學習了,寫下筆記加深下印象 如家html頁面 12 title 在此處插入標題 body divid div1 inputalt div1...

selenium元素定位Xpath

1.絕對路徑定位 用標籤的層級關係來定位元素,最外層語言為html,接著是body,一級一級的往下找,如果同一級,有多個相同的標籤,那麼按照上下順序確定第幾個,例 div 2 表示當前層級下第二個div 2.元素屬性定位 利用元素的屬性來定位元素 find element by xpath 元素名或...

元素定位 XPATH定位方法總結

xpath是比較常用的一種定位元素的方式,因為它很方便,缺點是,消耗系統效能。如果xpath使用的比較好,幾乎可以定位到任何頁面元素,而且受頁面變化影響較小。xpath xml path language 是一門在 html文件中查詢資訊的語言,可用來在 html文件中對元素和屬性進行遍歷。詳細使用...