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')

 

posted @ 2017-05-14 23:41  霂雨  阅读(34)  评论(0)    收藏  举报