Selenium自動化測試——Xpath定位
Selenium自動化測試——Xpath定位
在測試工作中通過定位查找元素是較為常用的,但有些時候無法查到測試對象較為完善的屬性及屬性值,Selenium提供了一個更為全面的方法,通過元素在被測頁面中的位置屬性進行查找。
Xpath是某個元素在XML文件中所處的位置,通過Xpath定位元素,精準度較高,但由于Xpath需遍歷頁面,因此查找性能較弱。
1、絕對路徑
絕對路徑是Xpath識別對象最為簡單的一種方法,即設(shè)置測試對象在頁面中的完整路徑地址,然后通過該地址進行元素查找。如圖1所示。

圖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所示功能:

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

首先識別復選框,獲取其個數(shù),然后通過列表循環(huán)方式逐個點擊。
Xpath具有非常多的功能,本節(jié)主要介紹常用的幾種,小伙伴們可在其官方網(wǎng)站詳細學習。

