一尘不染

cssSelector和Xpath有什么区别,并且在跨浏览器测试的性能方面哪个更好?

selenium

我正在多语言Web应用程序上使用Selenium WebDriver 2.25.0,主要测试页面内容(用于阿拉伯语,英语,俄语等不同语言)。

对于我的应用程序,根据性能最好并确保它应支持所有浏览器(即IE 7、8、9,FF,Chrome等)。

预先感谢您的宝贵建议。


阅读 380

收藏
2020-06-26

共1个答案

一尘不染

CSS选择器的性能远胜过Xpath,并且在Selenium社区中有很好的记录。这是一些原因,

  • Xpath引擎在每个浏览器中都不同,因此使其不一致
  • IE没有本机的xpath引擎,因此硒会注入自己的xpath引擎以实现其API的兼容性。因此,我们失去了使用WebDriver固有的本机浏览器功能的优势。
  • Xpath趋于复杂,因此在我看来很难阅读

但是,在某些情况下,您需要使用xpath,例如,搜索父元素或通过其文本搜索元素(我不建议稍后使用)。

您可以在此处阅读Simon的博客。他还建议在Xpath上使用CSS。

如果要测试内容,请不要使用依赖于元素内容的选择器。这将是每个地区维护的噩梦。尝试与开发人员交谈,并使用他们用来对应用程序中的文本进行外部化的技术,例如字典或资源包等。这是我的博客,对其进行了详细说明。

编辑1

感谢@parishodak,下面的链接提供了证明CSS性能更好的数字。

2020-06-26