web自動化測試Xpath定位

2021-09-26 10:44:19 字數 1700 閱讀 5650

find_element_by_xpath()

1.解決的問題: 

無id name class屬性

位置定位的元素為活動元素

2.xpath定位策略:

1). 路徑定位 

(1)  絕對路徑(從起始位置開始的路徑)  以/開頭。

說明 :從最外層元素到指定元素之間所有經過元素層級路徑;如 /html/body/div/p[0]

快速生成: 使用firebug快速生成xpath的絕對路徑(在html選單下右擊複製xpath)

(2 ) 相對路徑(從中間開始的路徑) 以//開始

說明:從第乙個符合條件的元素開始(一般配合屬性來區分);如//input[@id="user"]

解釋//input[@id="user"] --- 匹配的是input屬性標籤,其中有id="user"屬性

快速生成: 使用fribug的fripath來生成元素相對路徑(選中元素右擊複製最簡xpath)

2).利用元素屬性 (xpath結合元素屬性)

說明 : 快速定位元素, 利用元素唯一屬性   //*[@id="user"]

解釋    //*[@id="user"]

匹配是所有含有 id=user 的標籤

在使用xpath路徑的時候使用xpath裡面的屬性 @用來指明屬性,做區分說明

//input本身就可以定位到很多的表單, 指明乙個屬性就可以定位到具體某乙個表單,這就是結合的方式

3).層級和屬性結合

說明 : 要找的元素沒有屬性, 但是它的父級有屬性    //*[@id="user"]/input

解釋    //*[@id="user"]/input

匹配的input標籤,因為沒有屬性找的父級標籤

相對路徑所有標籤,含有id="user"屬性標籤的下級input標籤

4).屬性和邏輯結合

說明 元素之間相同的屬性同名怎麼辦?

解釋    //*[@id="user" and @class="tel"]

匹配的所有id屬性好幾個相同的,需要用兩個屬性去定位

用與去結合另乙個元素去解決相同的屬性同名問題

5) 文字內容是??的元素

5.1)快速定位文字的方式

頁面元素 ,zhangsan

相對路徑   文字定位 :   //*[text()='zhangsan' ]   

解釋 定位文字為zhangsan的元素

5.2)屬性以??開頭的元素

//*[starts-with(@attribute,'??')] 

starts-with為固定寫法不能變,可變的只有紅色字型部分

頁面元素

//*[starts-with(@place,'文字')]   

屬性place以文字開頭的元素xpath定位

5.3)屬性中含有??的元素

//*[contains(@attribute,'??')]

頁面元素

//*[contains(@name,'a')]   

根據name屬性包含a的元素 xpath定位

自動化測試 web自動化測試

自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...

web自動化測試之元素定位

貼吧 序號 方式 舉例 1通過id定位 driver.find element by id kw 2通過name定位 find element by name wd 3通過class定位 find element by class name s ipt 4通過xpath定位 find element...

Selenium自動化 Xpath元素定位

最近在教妹子做自動化測試,妹子基礎差,於是想到很多初學自動化的朋友們學習的知識沒有規範化,資訊太過雜亂。所以,本文整理了一些自動化元素定位方式 這次將講xpath定位!什麼是xpath path就是路徑,xpath也類似,就像 在dos中 d auto jack。xpath的使用 xpath的使用方...