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')]查找不到内容
slenium的xpath几种定位方式的更多相关文章
- Selenium 之18 种定位方式
1 id 定位 driver.find_element_by_id() HTML 规定id 属性在HTML 文档中必须是唯一的.这类似于公民的身份证号,具有很强的唯一性 from selenium i ...
- Selenium学习之==>18种定位方式的使用
Selenium的定位方式一共有18种,单数8种,复数8种,最后两种是前面这16种的底层封装 单数形式8种 # 1.id定位 al = driver.find_element_by_id('i1') ...
- selenuim中18种定位方式
18种定位方式=8种单数形式+8种复数形式+2种底层方案 单数可以确定唯一,复数无法确定: 单数形式定位,返回的是一个元素,复数形式,返回的是一个列表,返回的是当前页面所有符合要求的元素,没有意义 一 ...
- Android中几种定位 方式
介绍的几种定位方式 http://www.cnblogs.com/cuihongyu3503319/p/3863867.html 百度地图api: http://lbsyun.baidu.com/in ...
- android 三种定位方式
http://www.cnblogs.com/oudi/archive/2012/03/22/2411509.html 最近在看android关于定位的方式,查了很多资料,也做了相关实验,在手机上做了 ...
- selenium WebDriver 八种定位方式源码
/* * 多种元素定位方式 */ package com.sfwork; import java.util.List; import org.openqa.selenium.By; import or ...
- position的四种定位方式:static、fixed、relative、absolute
position属性用来规定元素的定位类型和方式 ①position:static 默认值,没有定位,元素出现在正常的流中: ②position:fixed 固定定位 是相对于浏览器窗口来进行定位: ...
- CSS的4种定位方式比较
CSS有四种定位(Positioning)方法:Static,Relative, Absolute和Fixed 元素flow, overlap 相对参照物: 能否用offset( top, left, ...
- css中对position的几种定位方式的最佳诠释
关于元素的position定位的理解,牛客网的hardy给出了一个比较好的理解: 在html中网页可以看成一个立体的空间,一个完整的页面是由很多个页面堆积形成的,如上图所示 CSS中Positio ...
随机推荐
- 为什么要使用func.call(this)
1.为什么要使用func.call(this) 在正常模式下,js 函数里那些你没有声明就使用的变量,其实是访问的全局对象的属性.但是在严格模式下,不允许这种语法,所有变量都必须要显示声明,所以如果你 ...
- ES 6.1.2集群安装
1.下载java,并设置环境变量 sudo tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/local/ sudo vim /etc/profile 在最后添 ...
- java加密MD5实现及密码验证
package test; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; impor ...
- GoWeb开发_Iris框架讲解(三):路由功能处理方式
Context概念 Context是iris框架中的一个路由上下文对象,在iris框架中的源码路径定义为:{$goPath}\github.com\kataras\iris\context\conte ...
- Cogs 6. 线型网络
6. 线型网络 ★★☆ 输入文件:linec.in 输出文件:linec.out 简单对比时间限制:1 s 内存限制:256 MB [问题描述] 有 N(N<=20)台 PC 放 ...
- 消耗战——dp+虚树
题目 [题目描述] 在一场战争中,战场由 $n$ 个岛屿和 $n-1$ 个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的总部在编号为 $1$ 的岛屿,而且他们已经没有足够多 ...
- 不建议使用Restsharp
Restsharp确实是个优秀的插件,它最大的特点是内置了JsonConverter, 在一定程度上简化了HttpWebRequest的使用,在nuget上面有19.3M的下载量,是个很好的证明. 但 ...
- spring boot 使用WebSocket与前端进行byte字节数组交互
一.装逼前先热热身 无论是比较传统的 web项目 还是近几年流行的前后端分离,后端只独立提供数据交互接口服务的项目,都避免不了数据之间交互格式的选择. 从很早之前的 xml 格式 到现在最火热的jso ...
- 洛谷P4113 [HEOI2012]采花
题目描述 萧薰儿是古国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花. 花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于 ...
- tp5.1 手动引入外部类库
use think\facade\Env; require_once Env::get('ROOT_PATH')."extend/PHPExcel/Classes/PHPExcel.php& ...