zoukankan      html  css  js  c++  java
  • selenium之如何使用xpath定位页面元素

    一.概述

          xpath是一种选择器,是一种xml路径语言,在自动化测试过程中能够准确的定位页面的元素,可以说xpath

    能解决99%的元素定位的问题;

    二.xpath常用符号说明

    / 表示绝对路径,绝对路径是指从根目录开始

    //表示相对路径

    .表示当前层

    ..表示上一层

    *表示通配符

    @表示属性

    []属性的判断条件表达式

    三.常用的xpath的写法

    /html/div

    /html//div 表示选择根目录下的所有的子孙后代节点中的div节点,//表示相对路径

    //div 表示选择所有的div节点

    //div/div 表示选择所有的div节点的子节点中含有div的节点

    //div/div/. 表示选择//div/div节点的当前层的节点,与//div/div的结果相同

    //div/div/.. 表示选择//div/div节点的上一层节点,也就是选择一个div节点,该div节点的子节点有div节点

    //div/div/* ,表示选择//div/div的所有子节点,//div/div会有两个匹配出来的节点

    //div[@id='input'] 表示选择一个id为’input’的div节点

    //div[@id='input']/input 表示选择一个id为’input’的div节点的input子节点

    //table//input[@id='user'] 表示选择table的子孙后代中id为user的input节点

    //input[@name='identity' and @class='Volvo'] 选择一个name为identity并且class为Volvo的input节点

    //input[@name='identity' or @class='Volvo'] 选择一个name为identity,或者class为Volvo的节点

    //input[@name='identity' or @class='Volvo'][1] 选择第一个name为identity,或者class为Volvo的节点

    //input[@name='identity' or @class='Volvo'][last()] 选择最后一个name为identity,或者class为Volvo的节点

    四.xpath的几个常用函数

    1.contains()://div[contains(@id,'in')] ,表示选择id中包含有’in’的div节点

    2.text()://a[text()='baidu']表示文本值

    3.last()

    4.starts-with()://div[starts-with(@id,'in')] ,表示选择以’in’开头的id属性的div节点

    5.not():表示否定,//input[@name=‘identity’ and not(contains(@class,‘a’))],表示匹配出name为identity并且class的值中不包含a的input节点。

    五.xpath的轴的概念

    ancestor 选取当前节点的所有先辈(父,祖父等)

    ancestor-or-self 选取当前节点的所有先辈(父,祖父等)以及当前节点本身

    attribute 选取当前节点的所有属性

    child 选取当前节点的所有子元素

    descendant 选取当前节点的所有后代元素(子,孙等)

    descendant-or-self 选取当前节点的所有后代元素(子,孙等)及当前节点本身

    following 选取当前节点的结束标签时候的所有节点

    following-sibling 选取当前节点之后的所有同级节点

    namespace 选取当前节点的所有命名空间节点

    parent 选取当前节点的父节点

    preceding 选取当前节点开始标签之前的所有节点

    priceding-sibling 选取当前节点之前的所有同级节点

    self 选取当前节点

    六.xpath轴的用法

    //div[@id='radio']//label[text()='Saab']/preceding-sibling::input[1] 选择label的text为Saab的节点之前的同级节点中为input节点的第一个

    用xpath轴时应注意的几个问题:

    1.调用轴时最好用'/';

    2.轴后面要加上符号"::" 

    3.“::”后面可以接节点名称,也可以接”*”

    轴的另一种写法:

    //input[following-sibling::label[1][text()=‘Saab’]], 这个的作用与//div[@id='radio']//label[text()='Saab']/preceding-sibling::input[1]的作用是一样的!

  • 相关阅读:
    60个Redis面试题
    Linux服务器安全加固
    Linux安全加固手册
    mysql赋权限
    cut命令的使用实例
    超详细的Tomcat性能监控及调优教程
    Linux面试题(系统管理类——Raid)
    https://www.cnblogs.com/diantong/p/10745372.html
    CentOS6启动流程(含详细流程图)
    Oracle ROWNUM用法和分页查询总结
  • 原文地址:https://www.cnblogs.com/liwu/p/5016631.html
Copyright © 2011-2022 走看看