xpath定位
来源:互联网 发布:电子期刊在线阅读软件 编辑:程序博客网 时间:2024/05/18 01:03
以http://mail.163.com/登录页面的用户名输入框为例,HTML代码大家自行参照
首先使用xpath定位时切忌:
1.不要使用带有空格的属性
2.不要使用自动生成的id、class 等
3.使用firebug会事半功倍
4.定位时一定要找到唯一的属性要确保定位的唯一性,根据唯一的属性进行各种定位
5.查看是否存在frame
先说说定位比较坑的,不建议使用
1、通过绝对路径做定位(相信大家不会使用这种方式)
/html/body/div[2]/div[2]/div[2]/form/div/div[1]/div[2]/input
再次强调千万不要直接复制或者使用绝对路径
2、不要使用元素索引如://input[1]这种
常用的定位方法:
1、通过相对路径做定位,两个斜杠代表相对路径
//input[@placeholder='邮箱帐号或手机号']
此处可以使用placeholder属性不用知道这是啥,只要是唯一的就可以用
2、使用文字定位
<span class="pr-domain j-prdomain" style="right: -76px;" id="auto-id-1510802784387">@163.com</span>
此处的文字指的是中间的“@163.com”这部分的文字
//span[contains(text(),'@163.com')]
//span[text() = '@163.com']
使用文字定位时用contains或者text()都可以,区别就是字面上的contains是指的包含,text就是纯粹的等于
3、使用部分属性值匹配:start-with、contains
//input[starts-with(@placeholder,'邮箱帐号')]
//input[contains(@placeholder,'邮箱帐号')]
4、利用上层节点即父节点等
//form[@id = 'login-form']//input[@name='email']
双斜杠表示相对路径即匹配该节点下的所有子孙节点等
单斜杠只匹配子节点
5、使用兄弟节点preceding-sibling、following-sibling
preceding-sibling:表示当前元素的上面的兄弟元素
//span[contains(text(),'@163.com')]//preceding-sibling::input
先定位到唯一的兄弟节点,在根据兄弟节点去找需要的节点,双引号后面跟对应元素,*号表示全部的节点
following-sibling:表示当前元素的下面的兄弟元素
//label[contains(text(),'邮箱帐号或手机号')]//following-sibling::input
原理同上
最后:
1、firebug一定要看,上面表示当前元素在哪,是在主页还是在frame里面,要看好做对应的切换
2、下面表示你所写的xpath对应的或者到的元素个数一定要唯一!一定要唯一!一定要唯一!!!
阅读全文
1 0
- XPath定位
- xpath定位
- xpath定位
- 【定位】-XPath定位
- xpath之数组定位
- Xpath定位练习
- xpath定位方法详解
- css xpath定位
- Appium通过xpath定位
- xpath定位方法详解
- selenium XPath 定位
- xpath基础知识定位
- XPATH元素定位
- xpath定位方式实例
- xPath技术快速定位节点
- xpath 绝对路径定位疑点分析
- CSS和xpath定位demo
- python selenium使用Xpath定位
- c指针
- 服务器搭建solr
- 用python中的列表和字典实现名片管理系统
- Studio运行出现:This version of Android Studio is incompatible with the Gradle Plugin used. Try disablin
- list<>集合通过io深度克隆
- xpath定位
- 近期deep learning做图像质量评价(image quality assessment)的论文3
- 使用可变参数,实现函数,求函数参数的平均值和最大值
- super关键字的应用
- 修改Tomcat窗口名称
- html、css、js加载顺序
- [Oracle 11g r2 (11.2.0.4.0) ]设置共享服务连接方式
- 记一次ubuntu连上校园网但不能浏览网页
- 从零开始安装使用ceph