css selector vs xpath 性能比较

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css selector vs xpath 性能比较相关的知识,希望对你有一定的参考价值。

参考技术A 曾经看过文章里面提到, selenium中使用xpath作为定位方法的时候,会遍历页面所有元素。因此find_element_by_xpath是要比find_element_by_css_selector慢。从此写auto test脚本总是强迫自己用css selector。
但是这个两种方法在性能上的差距又有多大呢,还是稍微测一下吧。
结果如图。
好像差距并不大。
难道是页面元素太少了?

[Selenium] 在Chrome的开发者工具中验证检查XPath/CSS selectors

Evaluate and validate XPath/CSS selectors in Chrome Developer Tools

Method 1 : From Elements panel

Use the search function inside Elements panel to evaluate XPath/CSS selectors and highlight matching nodes in the DOM.

1.Press F12 to open up Chrome DevTools.
2.Elements panel should be opened by default.
3.Press Ctrl + F to enable DOM searching in the panel.
4.Type in XPath or CSS selectors to evaluate.
5.If there are matched elements, they will be highlighted in DOM. However, if there are matching strings inside DOM, they will be considered as valid results as well. For example, CSS selector header should match everything (inline CSS, scripts etc.) that contains the word header, instead of match only elements.

Method 2 : From Console panel

Execute tokens $x("some_xpath") or $$("css-selectors") in Console panel, which will both evaluate and validate.

1.Press F12 to open up Chrome DevTools.
2.Switch to Console panel.
3.Type in XPath like $x(".//header") to evaluate and validate.
4.Type in CSS selectors like $$("header") to evaluate and validate.
5.Check results returned from console execution
If elements are matched, they will be returned in a list. Otherwise an empty list [ ] is shown.
If the XPath or CSS selector is invalid, an exception will be shown in red text.

以上是关于css selector vs xpath 性能比较的主要内容,如果未能解决你的问题,请参考以下文章

[Selenium] 在Chrome的开发者工具中验证检查XPath/CSS selectors

id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为啥

selenium:css_selector定位详解

scrapy学习总结

Scrapy里Selectors 四种基础的方法

IO 性能:Selector (NIO) vs AsynchronousChannel(NIO.2)