2016.9.20 automation 总结二

关于xpath 定位部分呢,除了《2016.9.20 automation 总结》中 最后一部分总结的xpath基础外,
可能有时候我们遇到一些不好定位的元素。
你有遇到过定位一个元素,需要先有一个有特殊特性的元素,找到它的祖先元素,在通过祖先元素,在找它的子孙来定位的吗?
遇到过定位某个元素包含固定的属性,但是属性值不固定的吗?
Xpath 还提供了一些keywords 来实现更多定位

ancestor:祖先节点
ancestor-or-self: 寻找自己或者祖先节点
/*[@class] : 找有class 属性的元素
//div[ul] : 找有孩子tag 是ul (不包含孙子,只孩子)的div 元素
preceding-sibling: 查找文档内与当前节点同一父节点,且上面显示的兄弟姐妹
following-sibling: 查找文档内与当前节点同一父节点,且当前节点下面的兄弟姐妹
preceding: 当前节点前所有的元素
following:当前节点后所有的元素
parent: 当前节点的父节点
descendant: 后裔

For Example:

假设HTML 如下 :

<div id="parent">
    <a id="name"> 1</a>
    <div id="c"> 
         <a id="a"> 内部</a>
    </div>
    <em>3</em>
</div>

Xpath 及对应结果:

  //*[@id="a"]/ancestor::*, 结果是   <div id="parent">,  <div id="c"> 
  //*[text()="3"]/preceding-sibling::*,    结果是  <a id="name">, <div id="c">
  //*[text()="2"]/preceding-sibling::*,   结果是  <a id="name">
  //*[text()="2"]/following-sibling::*,   结果是 <em>
  //*[text()="2"]/parent::*,        结果是   <div id="parent">
  //*[@id="parent"]/child ,       结果是   <a id="name"><div id="c">, <em>
  //*[@id="parent"]/descendant::* ,         结果是   <a id="name"><div id="a">, <a id="a"><em>
//*[@id="parent"]/descendant::a ,         结果是   <a id="name">, <a id="a">
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,715评论 1 92
  • 回顾下小本年用selenium, python 做automation的小结吧。都是些小点点。 通过获取父类的te...
    流浪骑士阅读 1,630评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,256评论 25 709
  • 紫砂壶种类繁多 花器、光器、筋纹器 小品、中品、大品 如何挑选是门学问 小品200cc以下,适合一人独饮或三两好友...
    紫砂壶友阅读 1,886评论 0 0
  • 上周的时候刚刚把《绣春刀》又看了一遍,虽然在知道剧情的情况下欣赏起来没有那么激动,但是两次沈炼和赵靖忠的决斗,还是...
    虚影不虚阅读 5,255评论 0 0

友情链接更多精彩内容