1.摘要
使用Selenium进行自动化测试,一大难题就是元素定位。虽然Selenium支持使用ID、name、Class、链接文字等多种方式进行元素识别,但对于复杂的网页,采用富客户端框架的前台界面,部分界面元素特征的稳定性无法保证,导致识别失败。如果生搬硬套使用ID、name等方式,会导致自动化脚本可用率降低,增加了投入成本。
本文推荐使用XPath定位方式,介绍XPath定位的几种方式:绝对路径、相对路径、索引号、属性值、文本内容和Axis,其中属性值和文本内容说明模糊匹配的使用,Axis方式说明Axis嵌套的方法。在多种XPath定位方式中,推荐使用相对路径、属性值、文本内容和Axis组合的方式,并给出界面识别的推荐规则。
通过XPath的组合,让你的自动化测试不再担心元素定位问题。
2.关键字
自动化测试 Selenium XPath
3.XPath简介
XPath不是Selenium专用,只是作为一种定位手段,为Selenium所用。XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。由于HTML的层次结构与XML的层次结构天然一致,所以使用XPath也能够进行HTML元素的定位。
本文使用的HTML示例源码如下。
Web界面如下。
4.绝对路径定位
顾名思义,将XPath表达式从HTML的最外层节点,逐层填写,最后定位到要操作的元素。
以定位第一个img元素为例,可以使用如下XPath表达式:
/html/body/div/div/img
语句以”/”开始,含义为从”html”节点开始寻找,逐层寻找”body/div/div/img”。通过FirePath查看结果如下。
通过绝对路径定位的元素, 一旦路径有变化会导致定位失败。而且完全能够通过路径定位到的元素是比较少见的,都需要增加索引、属性等方式。所以不推荐使用该方式。
5.相对路径定位
绝对路径与相对路径的差别与文件系统中的绝对和相对路径类似,相对路径是只给出元素路径的部分信息,在HTML的任意层次中寻找符合条件的元素。
还是以定位第一个img元素为例,通过相对路径可以使用如下XPath表达式:
//div/div/img
语句以”//”开始,含义为在任意层次下寻找路径层次为”div/div/img”的元素。通过FirePath查看结果如下。
查看更多精彩内容,请点击下载:
版权声明:本文出自《51测试天地》第五十期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任