pcw*_*ite 6 selenium xpath automation css-selectors
请帮助我理解为什么使用CSS选择器甚至是自动测试的选项.我一直在我的工作场所使用Ghost Inspector工具为我们的东西创建了大量的自动化测试.此工具为您提供了使用XPath的CSS选择器intead的选项.为什么?
XPath比CSS更耐用.任何给定UI上的CSS几乎每周都会在某些项目/功能上发生变化.这使得测试极其脆弱并且容易经常破裂.
是因为大多数新的测试编写者不想学习任何XPath并希望坚持基础知识吗?CSS选择器看起来比XPath语法更漂亮?请说服我.谢谢.
JeffC的答案在这里总结了每个定位策略的优缺点.但我会具体说明你的观点.
首先,没有必要让任何人相信选择器更好,因为从纯粹的功能角度来看,它们根本就不是(我说这是一个拥有黄金css选择器标签徽章和近1000个答案的人对那个标签的问题,所以你知道我没有偏见.如果你对XPath更熟悉,使用它 - 在功能和你可以做的事情方面,XPath是非常优越的,那里真的没有竞争.而且,正如您所说,性能不再是问题(如果有的话).
选择器用于快速简单的用例以及来自HTML和CSS代码库的用户,例如Web开发人员,他们希望开始使用自动化测试而无需学习另一个DSL.如果您负责自己网站的CSS,您还可以轻松地将样式表中的选择器复制到测试中,具体取决于您正在测试的内容.
另一方面,如果你来自XML/XSLT/XPath背景,很棒,你可以继续使用你知道并喜欢的XPath 1!
是的,Xpath比CSS更耐用,因为它可以调用包含功能的特定内容.
内容包含功能不会使XPath更"耐用" - 它使它更加通用.如果您仅仅依赖于元素的内容并且内容可能会发生变化或移动,那么您的XPath将变得比仅仅依赖于元素属性或其在DOM树中的位置的选择器更脆弱.
你可以做很多事情来使你的XPath或选择器或多或少脆弱,但这是DSL的多样性的指标,而不是它本身的脆弱程度.
1 取决于您习惯使用的XPath版本.
在Selenium社区中,最常见的话题之一是在Css或XPath两者之间,哪种定位器策略更好。CSS的支持者说它更具可读性和更快性,而支持XPath的人则说它具有穿越HTML DOM的能力(而CSS则不能)。由于基于不同观点的这种划分,很难为初学者确定最适合您和您的测试的最佳方法。以下是来自行业专家的一些专家:
按ID和类别查找元素的结果:
Browser | CSS | XPath
----------------------------------------------------
Internet Explorer 8 | 23 seconds | 22 seconds
Chrome 31 | 17 seconds | 16 seconds
Firefox 26 | 22 seconds | 22 seconds
Opera 12 | 17 seconds | 20 seconds
Safari 5 | 18 seconds | 18 seconds
Run Code Online (Sandbox Code Playgroud)
通过遍历查找元素:
Browser | CSS | XPath
----------------------------------------------------
Internet Explorer 8 | not supported | 29 seconds
Chrome 31 | 24 seconds | 26 seconds
Firefox 26 | 27 seconds | 27 seconds
Opera 12 | 25 seconds | 25 seconds
Safari 5 | 23 seconds | 22 seconds
Run Code Online (Sandbox Code Playgroud)
以下是要点:
支持CSS的一个论点是,它们是主观的,它们更具可读性,简洁性和简洁性。
Ben Burton提到您应该使用CSS,因为这是构建应用程序的方式。这使测试更易于编写,讨论和帮助其他人维护。
Adam Goucher表示将采用一种更加混合的方法-首先关注ID,然后关注CSS,并仅在需要时使用XPath(例如,走在DOM上),并且XPath对于高级定位器将始终更加强大。
因此,这似乎是一个艰难的选择。尤其是现在,我们已经知道,选择不再像以前那样依赖性能。选择并不像选择编程语言那样永久,并且,如果您正在使用有用的抽象(例如页面对象),那么利用混合方法就很容易实现。
归档时间: |
|
查看次数: |
2040 次 |
最近记录: |