Appium-3 AppiumXpath的用法

Xpath总结(PC)
 定位:
1.依靠自己属性,文本定位
//td[text()='Data Import']
//div[contains(@class,'cux-rightARROWICOM-ON')]
2.依靠父节点定位
//div[@class='x-grid-col-name x-grid-cell-inner']/div
//div[@name='x-grid-col-name x-grid-cell-inner']/div
3.依靠子节点定位
//div[div[@id='navigation']]
//div[div[@name='navigation']]
//div[p[@name='testp']]
4.混合型
//div[div[@name='listType']]/img
//td[a//font[contains(text(),'Selenium2从零开始 视频')]]//input[@type='checkbox']

进阶篇:
following-sibling
//input[@id='1235']/following-sibling::input(找到同级后面的节点)
preceding-sibling
//input[@id='123']/preceding-sibling::input(找到同级前面的节点)
start-with
//input[start-with(@id,'123')]
contains
//td[a//font[contains(text(),'Selenium2从零开始 视频')]]//input[@type='checkbox']
not
//input[not(@id='1234')]
//span[not(contains(text(),'xpath'))]

绝对路径
html/body/div/span[2]/input[4]中间结构变化就失效
相对路径 //开始,在整个html source里找,不管什么位置
索引[x] //div/input[2] div下的第二个input
//span[11]  错误
position()=2  position>3 position<5、
//div[@id='position']/span[2](如果id为position的div下有多个span的情况下可以这么写)
//div[@id='position']/span[position()=1](如果id为position的div下有多个span的情况下可以这么写)
//div[@id='position']/span[position()>1](如果id为position的div下有多个span的情况下可以这么写)
//div[@id='position']/span[position()<3](如果id为position的div下有多个span的情况下可以这么写)
last()(最后一个)
//div[@id='position']/span[last()-1](如果id为position的div下有多个span的情况下可以这么写)
last()-1(最后第2个)
//div[@id='position']/span[last()-1](如果id为position的div下有多个span的情况下可以这么写)

属性定位 @class  //div[@class] 有class属性的div
属性值定位,//div[@class='aaa']
功能关键字
常用
and例子
//span[@name='bruce' and text()='bruce2']
//span[@name='bruce'][text()='bruce2']
 or例子
 //span[text()='bruce1' or text()='bruce2']
 not,contains,start-with(上面有实例)
end-with(没有这个)
不常用的关键字
substring,substring-before,substring-after
substring(str,start_postion,length) 例子(start_position不是从0开始的,是从1开始的)
//div[@id='substring']/span[substring(@name,3,5)='bruce'](可以不写length,从开始位置一直到后面)
substring-before(str,substr) 例子
//div[@id='substring']/span[substring-before(@class,'-')='spanclass']
substring-after(str,substr)例子
//div[@id='substring']/span[substring-after(@class,'-')='spanclass2']
通配符*例子
*  //span[@*='bruce']   //*[@*='bruce']
Axes轴
parent父节点
//div[span[text()='xxxx']]/parent::div
ancestor 祖先节点,包含父亲节点,一层一层向上
//div[span[text()='xxxx']]/ancestor::div
descendant 所有子孙节点,不管上面位置,简写// 就是xpath中间出现//的情况
//div[@class='123']//input(通过父亲节点定位到子孙节点)
following-sibling 当前元素后面的兄弟姐妹节点
preceding-sibling 当前元素前面的兄弟姐妹节点

following 当前元素后面的所有元素,一直到</html>
preceding 当前元素之前的所有元素,一直到<html>

ancestor-or-self
descendant-or-self

这是我总结了bruce视频里的所有xpath,当然自己也体会了,所以感觉非常受用,也分享给大家,希望能够在大家做自动化项目是带来带你好处,慢慢我再分享一些技术总结 
发布了10 篇原创文章 · 获赞 0 · 访问量 7965
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览