Selenium自動化測試——Xpath定位

在測試工作中通過定位查找元素是較為常用的,但有些時候無法查到測試對象較為完善的屬性及屬性值,Selenium提供了一個更為全面的方法,通過元素在被測頁面中的位置屬性進行查找。

Xpath是某個元素在XML文件中所處的位置,通過Xpath定位元素,精準度較高,但由于Xpath需遍歷頁面,因此查找性能較弱。

1、絕對路徑

絕對路徑是Xpath識別對象最為簡單的一種方法,即設(shè)置測試對象在頁面中的完整路徑地址,然后通過該地址進行元素查找。如圖1所示。

Selenium自動化測試

圖1注冊按鈕XPATH路徑

從上圖可以看到,F(xiàn)ireFox中通過FirePath查找到用戶注冊界面中【立即注冊】按鈕的絕對Xpath顯示為:

html/body/div[6]/div/form/table/tbody/tr[7]/td[2]

利用Xpath絕對路徑查找元素方法如下:

driver.find_element_by_xpath("html/body/div[6]/div/form/table/tbody/tr[7]/td[2] ").click()

絕對路徑的好處是容易理解,根據(jù)測試對象在頁面中的位置一層層解析下來,缺點是一旦頁面發(fā)生變化,則路徑可能無法再次使用。

 

2、相對路徑

與絕對路徑不同的是,相對路徑僅標識了測試對象的相對位置,只要測試對象本身不發(fā)生位置變化,則依然能夠查找到對象。圖6- 5中測試對象的相對路徑是:

.//*form/table/tbody/tr[7]/td[2]

 

故采用相對路徑查找的方法如下:

driver.find_element_by_xpath(".//*form/table/tbody/tr[7]/td[2]").click()

 

1. 索引

如果待查找的元素較多,且同屬于某個類別,則可以使用索引進行查找。如圖2所示功能:

Selenium自動化測試

 

圖2 XPATH索引查找元素

上圖三個復選框?qū)儆谕粋€類型,可利用索引方式完成三個復選框的選擇。如:

Selenium自動化測試

 

首先識別復選框,獲取其個數(shù),然后通過列表循環(huán)方式逐個點擊。

Xpath具有非常多的功能,本節(jié)主要介紹常用的幾種,小伙伴們可在其官方網(wǎng)站詳細學習。