天天看點

web自動化-定位元素

在web自動化測試中,定位元素是非常關鍵的,本文會介紹通過CSS選擇器定位和xpath定位的一些方法,幫助大家高效定位元素。

一、css選擇器定位

(1)通過id定位

文法:

#id

示例:

<input id="password">

,定位id="password"的元素

定位方式:

#password

web自動化-定位元素

(2)通過class定位

文法:

.class

示例:

<input class="num">

,定位class="num"的元素

定位方式:

.num

web自動化-定位元素

(3)class多個值追加定位

文法:

.class1.class2.class3

(定位到唯一進制素為止)

示例:

<span class="num1 num2">

,定位class="num1 num2"的元素

定位方式:

.num1.num2

web自動化-定位元素

(4)通配符定位元素

  • “^” — 代表以什麼文本開始
  • “$” —代表以什麼文本結尾
  • “*” —代表包含什麼文本

文法:

tag[attribute<specialcharacter>='value']

(tag=标簽;attribute=屬性;specialcharacter=通配符;value=屬性值)

示例1:定位class以start開始的div元素

定位方式:

div[class^='start']

web自動化-定位元素

示例2:定位class以end結束的div元素

定位方式:

div[class$='end']

web自動化-定位元素

示例3:定位class包含include的div元素

定位方式:div[class*=‘include’]

web自動化-定位元素

(5)查找子節點

文法:通過 > 連接配接父節點和子節點(節點可以用标簽表示,也可以用id或者class表示)

示例:如下圖,查找

<a href="/list" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >确定</a>

元素

定位方式1:

span>div>a

web自動化-定位元素

定位方式2:

span>.end>a

web自動化-定位元素

定位方式3:

#login>.end>a

web自動化-定位元素

二、xpath定位

(1)用text建構有效xpath

示例:

<span class="login">登入</span>

定位方式:

//span[text()='登入']

(注意:此處用“=”,表示完全比對,如果文本中存在空格,需輸入空格)

web自動化-定位元素

(2)用contains關鍵字建構有效xpath

文法:

//tag[contains(attribute,'value')]

(tag=标簽;contains關鍵字;attribute=屬性;value=屬性值);用于比對一個屬性值中包含的字元串。

示例1:

<a href="/list" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >北京市</a>

;通過contains關鍵字查找文本中含“北京”關鍵字的a标簽

定位方式: xpath=

//a[contains(text(),'北京')]

web自動化-定位元素

示例2:

<input placeholder="請輸入使用者名" class="inputBox">

;通過contains關鍵字查找placeholder值含“使用者名”關鍵字的input元素

定位方式: xpath=

//input[contains(@placeholder,'使用者名')]

web自動化-定位元素

(3)用starts-with關鍵字建構有效xpath

文法:

//tag[starts-with(attribute,'value')]

(tag=标簽;starts-with關鍵字;attribute=屬性;value=屬性值);用于比對一個屬性開始位置的關鍵字。

示例:

<input placeholder="請輸入使用者名" class="inputBox ipt ipt-email">

通過starts-with關鍵字查找屬性class以"inputBox"開頭的input元素。

定位方式:xpath=

//input[starts-with(@class,'inputBox')]

web自動化-定位元素

(4)xpath-查找父節點和平級節點

  • 查找父節點

文法:

xpath-to-some-element//parent::<tag>

(xpath-to-some-elemen:語句;parent:關鍵字;tag:标簽)

示例:如下圖,定位class=“end”的div元素的父節點span元素

定位方式:xpath=

//div[@class='end']//parent::span

web自動化-定位元素
  • 查找前面的平級節點

文法:

xpath-to-some-element//preceding-sibling::<tag>

(xpath-to-some-elemen:語句;preceding-sibling:關鍵字;tag:标簽)

示例:如下圖,定位class=“end”的div元素前面與其平級的div元素

定位方式:xpath=

//div[@class='end']//preceding-sibling::div

web自動化-定位元素
  • 查找後面的平級節點

文法:

xpath-to-some-element//following-sibling::<tag>

(xpath-to-some-elemen:語句;following-sibling:關鍵字;tag:标簽)

示例:如下圖,定位class=“end”的div元素後面與其平級的a元素

定位方式:xpath=

//div[@class='end']//following-sibling::a

web自動化-定位元素

三、xpath絕對路徑與相對路徑

  • xpath的絕對路徑

    表示方式:用 “/” 表示;查找元素需是上一級節點的子節點中的一個,不能跳級

    示例: /html/body/span[1]/a

    web自動化-定位元素
  • xpath的相對路徑

    表示方法:用 “//” 表示; 查找下級任何子節點或者任何嵌套子節點中的一個,可以跳級

    示例://span[1]/a

    web自動化-定位元素

繼續閱讀