在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軸定位有了更深入的認識了?