天天看點

Selenium自動化測試——Xpath定位

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

Xpath是某個元素在XML檔案中所處的位置,通過Xpath定位元素,精準度較高,但由于Xpath需周遊頁面,是以查找性能較弱。

1、絕對路徑

絕對路徑是Xpath識别對象最為簡單的一種方法,即設定測試對象在頁面中的完整路徑位址,然後通過該位址進行元素查找。如圖1所示。

Selenium自動化測試——Xpath定位

圖1注冊按鈕XPATH路徑

從上圖可以看到,FireFox中通過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()
           

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

2、相對路徑

與絕對路徑不同的是,相對路徑僅辨別了測試對象的相對位置,隻要測試對象本身不發生位置變化,則依然能夠查找到對象。圖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自動化測試——Xpath定位

圖2 XPATH索引查找元素

上圖三個複選框屬于同一個類型,可利用索引方式完成三個複選框的選擇。如:

Selenium自動化測試——Xpath定位

首先識别複選框,擷取其個數,然後通過清單循環方式逐個點選。

Xpath具有非常多的功能,本節主要介紹常用的幾種,小夥伴們可在其官方網站詳細學習。