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">
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,784評論 1 92
  • 回顧下小本年用selenium, python 做automation的小結吧。都是些小點點。 通過獲取父類的te...
    流浪騎士閱讀 227評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,813評論 25 708
  • 紫砂壺種類繁多 花器、光器、筋紋器 小品、中品、大品 如何挑選是門學問 小品200cc以下,適合一人獨飲或三兩好友...
    紫砂壺友閱讀 257評論 0 0
  • 上周的時候剛剛把《繡春刀》又看了一遍,雖然在知道劇情的情況下欣賞起來沒有那么激動,但是兩次沈煉和趙靖忠的決斗,還是...
    虛影不虛閱讀 1,306評論 0 0