請教版上大大
有一樹狀結構如下:
<div id='wd-Inbox-mainpage'>
<div>
<div>
<ul data-automation-id='inbox_item_list'>
要用XPath來定位到該ul元素,目前有以下幾種寫法都可行
1. .//ul[@data-automation-id='inbox_item_list']
. 2. .//*[@data-automation-id='inbox_item_list']
3. .//*[@id='wd-Inbox-mainpage']/div[1]/div[1]/ul
4. .//*[@id='wd-Inbox-mainpage']/div[1]/div[1]/ul[@data-automation-id=
'inbox_item_list']
請問哪種方法能最快找到該元素?
另外使用.//或//對搜尋速度會有影響嗎,哪個較快找到?
在chrome的F12 直接按右鍵複製xpath的最快你可以寫個計時器 算算撈一萬次兩種寫法的差別
作者:
ian90911 (xopowo)
2018-05-08 12:04:00原來chrome f12可以直接抓xpath 學到一招了
作者:
alog (A肉哥)
2018-05-08 12:24:00其實 element 沒有量其實還好 最終還是要看 library 的實作/搜尋方式跟特性要找就找 ul 跟 data-automation-id 那個就可以了除非你找的 element 有特別的規則 例如抓要在特定的階層底下這個東西 其他的忽略否則應該要將xpath簡化 但回到一開始講的元素沒破千破萬應該是還好 那個算多少次都一樣
Chrome抓到的XPath是//*[@id='wd-Inbox-mainpage']/div[1]/div[1]/ul,所以用這個比較好嗎
作者:
alog (A肉哥)
2018-05-08 13:00:00Google 那個是方便抓 不會有特別優化只有element 帶有id 才會特別優化 因為 id 搜尋底層會有比較快的優化處理
那id跟data-automation-id哪個比較快?後者是怎麼產生的?
作者:
alog (A肉哥)
2018-05-08 13:18:00id 但是你要找的資料是 帶有data-automation-id 的ul所以東西簡單處理就好
作者:
alog (A肉哥)
2018-05-08 13:22:00嗯 因為你找的類型似乎沒有這麼強調階層之間的關係
頁面是有這麼多DOM需要考量到效能啊@@其實這個想一下也知道,第一個比對,id通常只有一個所以可以快速且正確定位效能一定是最快的