[请益] 怎样的XPath语法可以较快找到element

楼主: FacetheFaith (Yes Man)   2018-05-08 11:04:44
请教版上大大
有一树状结构如下:
<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']
请问哪种方法能最快找到该元素?
另外使用.//或//对搜寻速度会有影响吗,哪个较快找到?
作者: vi000246 (Vi)   2018-05-08 11:40:00
在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简化 但回到一开始讲的元素没破千破万应该是还好 那个算多少次都一样
楼主: FacetheFaith (Yes Man)   2018-05-08 12:34:00
Chrome抓到的XPath是//*[@id='wd-Inbox-mainpage']/div[1]/div[1]/ul,所以用这个比较好吗
作者: TitanEric (泰坦)   2018-05-08 12:38:00
个人觉得xpath不好懂 我都用selector
作者: alog (A肉哥)   2018-05-08 13:00:00
Google 那个是方便抓 不会有特别优化只有element 带有id 才会特别优化 因为 id 搜寻底层会有比较快的优化处理
楼主: FacetheFaith (Yes Man)   2018-05-08 13:18:00
那id跟data-automation-id哪个比较快?后者是怎么产生的?
作者: alog (A肉哥)   2018-05-08 13:18:00
id 但是你要找的资料是 带有data-automation-id 的ul所以东西简单处理就好
楼主: FacetheFaith (Yes Man)   2018-05-08 13:21:00
所以会建议选1吗
作者: alog (A肉哥)   2018-05-08 13:22:00
嗯 因为你找的类型似乎没有这么强调阶层之间的关系
作者: thekensg (小猜)   2018-05-08 19:31:00
是关工作版屁事啊
作者: ripple0129 (perry tsai)   2018-05-10 00:52:00
页面是有这么多DOM需要考量到效能啊@@其实这个想一下也知道,第一个比对,id通常只有一个所以可以快速且正确定位效能一定是最快的

Links booklink

Contact Us: admin [ a t ] ucptt.com