原文地址http://blog.csdn.net/kaka1121/article/details/51878346

单个控件获取

需求:

右键到某个控件上,就能获取到至多三个可以唯一定位该元素的相对Xpath,并将其标记为以上8种抽象控件之一。

可抓取控件节点名:
input(type=="text"、"submit"、"button"、"reset"、"image"、"checkbox"、"radio"、"file")
textarea、select、table、a、button、span、img、i、font、div

和上面抽象出来的8种控件对应起来,如下图:

 
抓取优先级&策略

如上图所示:

1.如果存在id,且唯一,则直接用id,其Xpath为:

//input[@id=’main’]

2.其次,如果存在name,且唯一,则直接用name,其Xpath为:

//a[@name=’name’]

3.再次,如果存在text,且唯一,则直接用text,其Xpath为:

//span[contains(text(),’aaa’]

4.如果还不能唯一定位,且存在name、text,二者组合能唯一定位,则其Xpath类似:

//Select[@name=’name’ and contains(text(),’aaa’]

5. 如果还不能唯一定位,则依次尝试"value","title","class","style",如果能通过其一唯一定位,则其Xpath类似:

//XXX[@class(或者是value、title、style)=’class’]

6.如果还不能唯一定位,则递归寻找其父节点(依次单看id、name、text、title),直到找到唯一。 。

再从其父节点开始,取绝对路径(元素索引),加起来唯一定位,其Xpath类似:

//input[@id=’main’]/div[1]/span[2]

当然,这种情况开始,就应该跟开发提可测性,增加唯一的id、name之类了。

7.如果还不能唯一定位,则寻找其所有子节点(依次单看id、name、text、title),直到找到唯一。

再使用其子节点Xpath来唯一定位,其Xpath类似:

//input[@id=’main’]/parent::XXX

8.如果还不能唯一定位,则寻找其所有兄弟节点(依次单看id、name、text、title),和自己在兄弟节点中的index,直到找到唯一。

//input[@id=’main’]/parent::XXX/XX[3]

9.以上全不满足,则给出其绝对路径(元素索引),来唯一定位,其Xpath类似:

/XXX[1]/XX[2]/X[5]/XXXXX[2]

示例:

右键—>点击

抓取结果:

如上图所示,以百度首页--“百度一下”按钮为抓取对象,抓取出的三个能唯一定位的Xpath如图中③所示。

另外,插件还对控件所在frame(①)进行抓取,此处无frame信息。

如上图中②所示,控件被识别为click类,提供”点击”方法。

如上图中④所示,控件被命名为“su”,调用时使用该名字,并附上备注“su”(⑤)作为控件的说明。

点击“生成代码”

生成基于框架的代码入下:

@Xpath(xpath={"//input[@id='su']", "//input[contains(@value,'百度一下')]", "//input[contains(@class,'bg s_btn btnhover')]"}) 
@Frame(frame="") 
@Description(description="su") 
public Click su;

结合,框架,便能对控件进行点击操作。

最新文章

  1. SSH配置免密码登陆
  2. [Leetcode][JAVA] Minimum Window Substring
  3. exe文件无法打开
  4. iOS开发备忘录:自定义UINavigationBar背景图片和Back按钮
  5. 不用synchronized块的话如何实现一个原子的i++?
  6. flexbox布局模式-- 浅谈
  7. cf B. Simple Molecules
  8. 阅读http://zh.lucida.me/有感
  9. WPF文本框只允许输入数字
  10. NLP系列(2)_用朴素贝叶斯进行文本分类(上)
  11. Linux2.6内核--抢占
  12. gdb学习(二)[第二版]
  13. 机器学习基石10-Logistic Regression
  14. Newtonsoft.Json解析数组
  15. tkinter学习系列(二)之窗口的设置
  16. 只打开一次浏览器,生成html测试报告<小紧张中......>
  17. python 小练习4
  18. maven 创建war类型项目
  19. paxos 分布一致性算法的一些资料
  20. (线段树 区间查询更新) Can you answer these queries? -- hdu--4027

热门文章

  1. JAVA学习资源网站
  2. 【BZOJ】1492: [NOI2007]货币兑换Cash(cdq分治)
  3. 我学cocos2d-x (一) 游戏基本概念:坐标系与Anchor Point
  4. [转]Shell脚本中获取SELECT结果值的方法
  5. iOS文件路径相关的方法
  6. 75、JSON 解析库---FastJson, Gson
  7. sql 提升查询效率 group by option hash group
  8. 修改DedeCMS图片上传路径命名规则的具体方法步骤
  9. CSS文本对齐text-align详解
  10. Python全栈day13(作业讲解字典嵌套实现用户输入地址信息添加及查看)