xpath 定位
定位工具 :Firefox插件--WebDriver Element Locator .、firebug、firepath, web developer
下载地址: https://addons.mozilla.org/zh-CN/firefox/addon/element-locator-for-webdriv/?src=api
1. .//input[@id='kw' and @name='wd']
. :表示选取当前节点
//: 相对定位
*:所有的
[]:表示条件
@:条件是 后面加属性名称
and:可以用and 连接属性值,但要注意的是 条件前一定要加 @
2. 需要重点记住的几个语法

3. 利用text值进行定位,即通过文本内容定位元素位置
一般link 都用text进行定位 .//div[@id='u1']/a[text()='新闻']

4.利用contains定位
.//div[@id='u1']/a[contains(@href,'news')]


5. last() 的用法
last() 可以用减法来定位倒数第几个元素

6. "|" 的用法
.//*[@id='kw']|//input[@name='wd']
7. ancestor 的用法,用来选取当前节点的所有先辈(父、祖父等)

8.parent 的用法,用来选取当前节点的父节点
.//a[@name='tj_trnews']/parent::div

9.child 的用法,用来选取子节点
.//div[@id='u1']/child::a[1]

10 利用ancestor逆向定位子元素
.//a[ancestor::div[@id='u1']][1]

11.利用following-sibling定位同级元素
.//label[text()='威胁名称']/following-sibling::div
.//label[contains(text(),'自查题目')]/following-sibling::div
12. 同级节点
- child 选取当前节点的所有子元素
- parent 选取当前节点的父节点
- descendant 选取当前节点的所有后代元素(子、孙等)
- ancestor 选取当前节点的所有先辈(父、祖父等)
- descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身
- ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身
- preceding-sibling 选取当前节点之前的所有同级节点
- following-sibling 选取当前节点之后的所有同级节点
- preceding 选取文档中当前节点的开始标签之前的所有节点
- following 选取文档中当前节点的结束标签之后的所有节点
- self 选取当前节点
- attribute 选取当前节点的所有属性
- namespace 选取当前节点的所有命名空间节点
一些定位
(//android.widget.TextView[@text='股票'])[1] 通过括住前面整体来获取第几个元素
//android.widget.TextView[@text='股票' and @resource-id='com.xueqiu.android:id/text']
//*[@text='股票' and @resource-id='com.xueqiu.android:id/text'] 通过*来简化定位
//android.widget.TextView[@instance=2]
//*[contains(@resource-id, 'text') and @text='股票']
常用js
// 设置高度 js.executeScript("document.getElementsByClassName('dialog__body')[0].style.maxHeight='800px'"); //去除redonly属性 document.getElementsByClassName('el-input__inner')[6].removeAttribute('readonly')

浙公网安备 33010602011771号