Selenium自动化测试——Xpath定位

在测试工作中通过定位查找元素是较为常用的,但有些时候无法查到测试对象较为完善的属性及属性值,Selenium提供了一个更为全面的方法,通过元素在被测页面中的位置属性进行查找。

Xpath是某个元素在XML文件中所处的位置,通过Xpath定位元素,精准度较高,但由于Xpath需遍历页面,因此查找性能较弱。

1、绝对路径

绝对路径是Xpath识别对象最为简单的一种方法,即设置测试对象在页面中的完整路径地址,然后通过该地址进行元素查找。如图1所示。

Selenium自动化测试

图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自动化测试

 

图2 XPATH索引查找元素

上图三个复选框属于同一个类型,可利用索引方式完成三个复选框的选择。如:

Selenium自动化测试

 

首先识别复选框,获取其个数,然后通过列表循环方式逐个点击。

Xpath具有非常多的功能,本节主要介绍常用的几种,小伙伴们可在其官方网站详细学习。