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

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')]查找不到内容

slenium的xpath几种定位方式的更多相关文章

  1. Selenium 之18 种定位方式

    1 id 定位 driver.find_element_by_id() HTML 规定id 属性在HTML 文档中必须是唯一的.这类似于公民的身份证号,具有很强的唯一性 from selenium i ...

  2. Selenium学习之==>18种定位方式的使用

    Selenium的定位方式一共有18种,单数8种,复数8种,最后两种是前面这16种的底层封装 单数形式8种 # 1.id定位 al = driver.find_element_by_id('i1') ...

  3. selenuim中18种定位方式

    18种定位方式=8种单数形式+8种复数形式+2种底层方案 单数可以确定唯一,复数无法确定: 单数形式定位,返回的是一个元素,复数形式,返回的是一个列表,返回的是当前页面所有符合要求的元素,没有意义 一 ...

  4. Android中几种定位 方式

    介绍的几种定位方式 http://www.cnblogs.com/cuihongyu3503319/p/3863867.html 百度地图api: http://lbsyun.baidu.com/in ...

  5. android 三种定位方式

    http://www.cnblogs.com/oudi/archive/2012/03/22/2411509.html 最近在看android关于定位的方式,查了很多资料,也做了相关实验,在手机上做了 ...

  6. selenium WebDriver 八种定位方式源码

    /* * 多种元素定位方式 */ package com.sfwork; import java.util.List; import org.openqa.selenium.By; import or ...

  7. position的四种定位方式:static、fixed、relative、absolute

    position属性用来规定元素的定位类型和方式 ①position:static 默认值,没有定位,元素出现在正常的流中: ②position:fixed  固定定位 是相对于浏览器窗口来进行定位: ...

  8. CSS的4种定位方式比较

    CSS有四种定位(Positioning)方法:Static,Relative, Absolute和Fixed 元素flow, overlap 相对参照物: 能否用offset( top, left, ...

  9. css中对position的几种定位方式的最佳诠释

    关于元素的position定位的理解,牛客网的hardy给出了一个比较好的理解: 在html中网页可以看成一个立体的空间,一个完整的页面是由很多个页面堆积形成的,如上图所示   CSS中Positio ...

随机推荐

  1. 洛谷P3006 [USACO11JAN]瓶颈Bottleneck(堆模拟)

    传送门 感觉这题的思路还是挺不错的.然而为啥全网就一个题解而且只有代码……然后我只好看着代码理解了好久…… 题意就是有一棵树,每一个节点向他父亲节点连边,且有一个容量表示每一秒可以经过的牛的数量,每一 ...

  2. ubuntu 14.04安装octave,及其使用

    从库安装: sudo apt-add-repository ppa:octave/stable sudo apt-get update sudo apt-get install octave 使用:以 ...

  3. jmeter 签名MD5生成(转)

    请求接口需要同时发送签名,签名定义为: 可以看出签名就是把用户的密码 .用户名 和签名key生成一个md5串就可以了 刚好jmeter 有个md5 生成,生成前需要获取name ,password k ...

  4. FTP原理与配置

    FTP(file transfer protocol)文件传输协议(基于tcp协议).是用来传送文件的协议,使用FTP实现文件传输的同时,还可以保证数据传输的可靠性和高效性.通过学习我们需要掌握以下两 ...

  5. 转 mysql 下载 以及安装

    https://blog.csdn.net/kerafan/article/details/78001849 一.MySQL 各个版本区别 ,(都需要编译的 ) 1.MySQL Community S ...

  6. MySQL存储引擎InnoDB,MyISAM

    MySQL存储引擎InnoDB,MyISAM1.区别:(1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语 ...

  7. 记录一个调试REST风格的web服务的client

    coogle浏览器的advanced rest client很好用,记录一下,脑子不好,容易忘,,可以在chrome 的网上应用店添加 Rest client是用来调试REST风格的Web服务,接收P ...

  8. Spring Boot 测试 junit

    import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.ann ...

  9. drupal优化全攻略

    下面是drupal优化的一些经验.分四大部分来讲. 第一部分:Drupal系统本身的设置来达到优化 第二部分:针对php代码进行的优化 第三部分:针对MYSQL数据库进行的优化 第四部分:针对网站架构 ...

  10. Unity Download Assistant Error: 'SendRequest Error' while downloading ini file from http://files.unity3d.com/bootstrapper/29055738eb78/unity-5.3.6f1-win.ini

    Unity 官网的哥们如此说道 I open the exe on Compatibility Mode , it's solved. You can try. :) 翻译就是 我用兼容模式打开,就能 ...