在web自动化里面常常要用到定位,经常使用的八种定位方式中我最喜欢xpath定位,功能很强大。结合它里面的文本定位、模糊定位、逻辑定位等,基本能搞定全部的元素定位问题。web
今天要讨论的是xpath的另外一种比较复杂的定位:轴定位。网上的关于轴定位的我翻了下,说得都不够详细 ,有的一笔带过,这着实苦恼了我许久。晚上研究了会,发现这玩意确实很差理解,特此记录一下,以防往后又忘了。。spa
总共有八个轴关键字,parent,child,ancestor祖先,descendant后裔,following,following-sibling兄弟姐妹,preceding,preceding-sibling。具体含义以下:3d
parent::div 上层父节点,你那叫div的亲生爸爸,最多有一个;
child::div 下层全部子节点,你的全部亲儿子中叫div的;
ancestor::div 上面全部直系节点,是你亲生爸爸或者你亲爹或者你亲爹的爸爸中叫div的;
descendant::div 下面全部节点,你的后代中叫div的,不包括你弟弟的后代;
following::div 自你如下页面中全部节点叫div的;
following-sibling::div 同层下节点,你全部的亲弟弟中叫div的;
preceding::div 同层上节点,你全部的亲哥哥以及他们的后代中叫div的;
preceding-sibling::div 同层上节点,你全部的亲哥哥中叫div的;
注意他们之间有些微妙的区别,最好结合实际的元素定位例子亲自操做一下,这里以小米商城mi.com首页为例:blog
这是parent:自动化
这是child:im
这是ancestor:d3
这是ancestor:商城
这是following:xpath
这是following-sibling:margin
这是preceding:
这是preceding-sibling:
怎么样,如今是否是对xpath轴定位有了更深入的认识了?