selenium - CSS 和 XPath 选择器有什么区别?就跨浏览器测试的性能而言,哪个更好?

标签 selenium selenium-webdriver xpath css-selectors webdriver

我正在与 Selenium WebDriver 合作2.25.0在多语言Web应用上,主要测试页面内容(针对不同语言,如阿拉伯语、英语、俄语等)。

对于我的应用程序,根据性能哪个更好,并确保所有浏览器都支持它(即 Internet Explorer 789 、Firefox、Chrome 等)?

最佳答案

CSS 选择器的性能远优于 XPath 选择器,并且在 Selenium 社区中有详细记录。以下是一些原因:

  • 每个浏览器中的 XPath 引擎都不同,因此导致它们不一致
  • Internet Explorer 没有 native XPath 引擎,因此 Selenium 注入(inject)自己的 XPath 引擎以与其 API 兼容。因此,我们失去了使用 WebDriver 本质上提倡的 native 浏览器功能的优势。
  • XPath 表达式往往会变得复杂,因此在我看来很难阅读

但是,在某些情况下您需要使用 XPath 选择器,例如搜索父元素或通过文本搜索元素(我不推荐后者)。

您可以阅读 Simon here 的博客。他还推荐 CSS 而不是 XPath。

如果您正在测试内容,请不要使用依赖于元素内容的选择器。对于每个地方来说,这都将是一场维护噩梦。尝试与开发人员交谈并使用他们用于外部化应用程序中的文本的技术,例如字典或资源包等。这里是my blog post这详细解释了它。

Thanks to parishodak ,这里是the link它提供了证明 CSS 性能更好的数字。

关于selenium - CSS 和 XPath 选择器有什么区别?就跨浏览器测试的性能而言,哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16788310/

相关文章:

python - Selenium Python : Element not clickable because another element obscures it

java - 用 xpath 替换对象列表中的值?

xpath - css/xpath选择器,用于在使用Selenium Webdriver(java)时排除元素中的子节点

java - 使用selenium java的字体颜色

python - 使用 selenium 按表选择链接

java - 需要使用浏览器缓存检查用户是否登录 | Selenium java

Java 转换器 w3c.dom.document 到 inputstream

Python、Selenium - 处理多个等待条件

java - Selenium 测试设置

javascript - 通过 Protractor js向右移动Google maps map