有了XPath,再也不用担心元素定位了

发表于:2018-8-02 09:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王练    来源:51Testing软件测试网原创

  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内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号