web自动化测试(五)——xpath定位

 

xpath定位

 

终极目标:找到唯一的一个元素

 

F12,在elements中,ctrl+f 可验证xpath表达式是否正确

 

以//开头, //标签名[@属性名=值]

 

*匹配所有

 

逻辑运算   使用 and  或者or 

      //*[@id="kw" and @name="wd" and @class="s_ipt"]

 

定位:

   绝对定位

           父/子  位置和继承关系                 /html/body/div[2]/div[2]/div[5]/div[1]/div/form/span[1]/input

           项目中不使用绝对定位,一旦元素变动,改动太大

 

  相对定位

          //*[@id="u_sp"]/a[2]           a[2],从1开始(不是从0开始)

          只关注页面中是否有符合我条件的元素,搜出条件,在啊html当中去找

 

  通过元素的文本内容来定位

        适用于:文本内容固定

        语法------//标签名[text()=文本值]

        例子-------//p[text()="平均出勤率"]

 

  包含——属性/文本内容,包含一部分

         语法-------contains(@属性/text(),被包含的内容)

         例子-------//span[contains(@class,"quickdelete-wrap")]        代码:class="bg s_ipt_wr quickdelete-wrap"

 

轴定位:

   使用场景:

          以上所有定位都无法帮你找到元素

         表格的情况下用的比较多

     通过儿子找爸爸,找爷爷

     通过兄弟找兄弟

     轴定位--单斜杠

 

   轴定位语法:

           1、 ancestor————祖先节点,包括父

           2、parent   ——父节点

          3、preceding——当前元素节点之前的所有节点(html页面先后顺序)、只要在我前面,不管是不是亲生的

          4、preceding-sibling——当前元素节点之前的所有兄弟节点、比我大的兄弟,亲生的

          5、following——当前元素标签之后的所有节点(html页面先后顺序))、只要在我后面的  ,不管是不是亲生的

          6、following-sibling——当前元素节点标签之后的所有兄弟节点

 

          语法

                     已知的元素/轴名称::标签名称[@属性=值]

         例:

                //div[@id="u1"]//a[@name="tj_login"]/preceding-sibling::a[@id="kw"]

            

 

   

posted @ 2019-12-12 21:53  太阳-向日葵  阅读(315)  评论(0编辑  收藏  举报