WebdriverIO与Selenium Webdriver(Java方法)的比较

14

有关WebdriverIO与Java Selenium的反馈如何?我很犹豫,想消除这种困惑。

我花了几天时间学习WebdriverIO,并进行了一些实践,但得出结论它还不够成熟。调试确实是一个挑战。


结论 - webdriverIO 不如 Selenium 成熟,这是否仍然成立,它是否仍然相关? Selenium 能做的事情,webdriverIO 不能吗? - Anjani Kumar
2个回答

16

WebdriverIO是(Selenium 2.0) WebDriver API的JavaScript / nodejs实现之一-像(Selendroid、Protractor等)许多其他工具一样。正如规范所述:

WebDriver是一个远程控制接口,可启用用户代理的内省和控制。它提供了一种平台和语言中立的线协议作为远程指导网页浏览器的行为的方法。

如果您使用Java,则将使用WebDriver的Java实现。您选择哪种语言实现取决于您、您的技能和团队的技能。

虽然我非常怀疑WebdriverIO "还不够成熟"。WebDriver是一个很好的规范,有许多强大的实现,但它经常被错误地使用。特别是对于新手而言,非常大比例的“随机”故障完全可以通过避免其测试代码中的竞争条件来避免。


谢谢,安德鲁。我不理解你最后提到的那一点,即“随机”故障中有很大一部分是他们测试代码内可完全避免的竞态条件。 - user3559569
1
如果我们选择WebdriverIO(一种JavaScript方法)...我们如何调试代码。如果出现任何错误,我们需要查看功能文件、步骤文件、JSON等(只是为了找到导致浏览器无法打开的错误)。 - user3559569
3
当我说我理解你的沮丧时,请相信我。我自己也是从Java Selenium开始学习的。Andrew所指的竞态条件是指JavaScript使用回调和承诺。WebdriverIO是一个很棒的工具,实际上包括了广泛的调试和日志记录工具。我建议从wdio.conf.js中设置logLevel开始。此外,WebdriverIO还有一个debug命令,可以用来暂停代码执行并检查浏览器。
  • http://webdriver.io/api/utility/debug.html
- jrader
1
@user3559569 我发现以下链接对于从Java Selenium转换到WebdriverIO非常有帮助:
  • http://peter.michaux.ca/articles/transitioning-from-java-classes-to-javascript-prototypes
  • http://code.tutsplus.com/tutorials/an-introduction-to-webdriver-using-the-javascript-bindings--cms-21855
- jrader
还有一个要讨论的问题...Webdriver.io是否是进行大型项目端到端测试的好选择。 - user3559569
显示剩余4条评论

5

因此,我们使用Java - Selenium、Serenity、JBehave测试框架以及Javascript WebdriverIO、Mocha和Yodda。

我认为Java方法更容易理解和调试。更容易理解,因为网站测试大多是顺序的,你从一个页面导航到另一个页面,点击一个按钮并填写表单。这可以避免使用JS替代方案时遇到的任何异步问题。调试非常好,因为你有类和固定的结构。

第二个项目在后端使用NodeJS,因此集成测试框架更容易。测试框架成为部署/开发过程的一部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接