web自动化测试框架PatatiumWebUii(10)

发表于:2016-10-14来源:webdriver作者:webdriver点击数: 标签:
span class = cde 八佰伴 / span span class = cde 嘎嘎嘎 / span div id = abc form div input span class = cde 八佰伴 / span / input / div / form div 分析:该元素,没有唯一性的id,n
<span class=”cde”>八佰伴</span>
<span class=”cde”>嘎嘎嘎</span>
<div id=”abc”>
   <form>
            <div>
                   <input>
                      <span class=”cde”>八佰伴</span>
                   </input>
            </div>
   </form>
<div>

分析:该元素,没有唯一性的id,name等标签,并且层级多,上一级也没有唯一性的东西,只能从上上上级开始查找元素。但是从上上级查找元素,xpath的层级多,定位信息复杂,那么有没有办法优化精简呢?答案是肯定的,利用//可以大幅优化精简xpath表达式

方案一://div[@id=’abc’]/form/div/input/span

方案二://*[@id=’abc’]/form/div/input/span[@class=’cde’]

方案三://span[@class=’cde’][2]

方案四://div[@id=’abc’]//span[@class=’cde’]--此方法最简洁,结构也最清晰,也最稳定

综上xpath定位原则,元素id,name属性优先使用,其次是class等其他,1、在当前节点没有id,name等属性确定元素唯一性的时候,往上找,通过当前节点父亲,祖父,祖父的父亲,祖父的祖父等节点查找当前元素。2、一个元素属性不足够定位当前元素的时候,可以通过and运算符,组合属性来定位使之达到唯一性,尽可能的缩短xpath层级,使xpath定位更稳定。

原文转自:http://git.oschina.net/zhengshuheng/PatatiumWebUi