zoukankan      html  css  js  c++  java
  • slenium的xpath几种定位方式

    练习地址,以下面地址为例:

    http://www.w3school.com.cn/example/xmle/books.xml

    1.  查找book对象

    //book  #所有的数

    //book[1] #第一本书

    //book[last()]  倒数第一本:

    //表示从目录任意位置查找,/表示按照目录顺序查找

    倒数第二本://book[last()-1]

    2.属性查找@:

    //book[@category="cooking"] 表示查找属性category为cooking的内容

     

    1.  逻辑表达式

    And查找

    //book[@category="web" and @cover="paperback"]

     

    Or查找

    //book[@category="web" or  @cover="paperback"]

     

    非查找控件

    //book[@category!="web"]

     

    Not查找

    //year[not(.=2005)]

    意思是:查找year内容不为2005的内容  注:“.”就等于text()

     

    //book[not(@category="children")]

    模糊匹配

    //book/title[contains(text(),'Potter')]   :查看book下面title下文本内容包含Potter的控件,只要包含potter就可以定位

     

    精确匹配

    //book/year[(text()=2005)]

    使用属性值做精确匹配 意思是:查找book下year节点下文本内容为2005的内容

     

    使用大于小于符号定位

    //book/year[(text()<2005)] 查找book下year下的文本内容小于2005的

     

    相对定位:

    相对定位是两个杠表示“//”,相对路径易维护,

    //book//title

     

    绝对路径

    绝对定位用一个杠“/”, 绝对路径一个层级变化所有空间都有变化

    /bookstore/book[1]/title

     

    轴方式定位:

    轴表达式说明

    parent::* :表示当前节点的父节点元素

    ancestor::* :表示当前节点的祖先节点元素

    child::* :表示当前节点的子元素  /A/descendant::* 表示A的所有后代元素

    self::* :表示当前节点的自身元素

    ancestor-or-self::* :表示当前节点的及它的祖先节点元素

    descendant-or-self::* :表示当前节点的及它们的后代元素

    following-sibling::* :表示当前节点的后序所有兄弟节点元素

    preceding-sibling::* :表示当前节点的前面所有兄弟节点元素

    following::* :表示当前节点的后序所有元素

    preceding::* :表示当前节点的所有元素

    1.同级元素

    /bookstore/book[1]/following-sibling::*

    查找books1所有的同级元素都查找出来,“*”表示所有

     

    2./bookstore/book[1]/following-sibling::book[2]

    查找book[1]下同级节点下的第二个节点

     

    查找子节点后的节点year

    /bookstore/book[2]/year/following-sibling::*

    意思是:查找books2下year节点后所有的节点

     

    查找节点前的数据

    /bookstore/book[2]/year/preceding-sibling::*
    意思是:查找books[2]下year前的同级节点

     

    查找节点的父辈

    /bookstore/book[2]/year/parent::*

    意思是:查找book[2]的上一个节点,父辈

     

    查找节点的子辈

    /bookstore/book[2]/descendant::*

    意思是:查找book2的子辈

     

    使用position位置定位

    //book[position()=2]

    意思:定位books下的第二个节点

     

    也还可以这样

    //book[position()>2]

     

    问题://book[contains(.,'Potter')]可以查找到内容而//book[contains(text(),'Potter')]查找不到内容

  • 相关阅读:
    sqoop常用命令三 ---- import导入 与export 覆盖更新,常见问题总结
    Sqoop 数据导出:全量、增量、更新
    idea 安装热部署插件
    Python学习之turtle绘图篇
    使用python自动画一只小猪佩奇(源码)
    Python turtle安装和使用教程
    PYCHARM三方库安装方法
    Impala编译部署-3
    SSLv3 SSLContext not available Tomcat
    SSLv3 SSLContext not available Tomcat
  • 原文地址:https://www.cnblogs.com/chongyou/p/6533714.html
Copyright © 2011-2022 走看看