WebdriverIO 与 Selenium Webdriver(Java 方法)
Posted
技术标签:
【中文标题】WebdriverIO 与 Selenium Webdriver(Java 方法)【英文标题】:WebdriverIO Vs Selenium Webdriver (Java Approach) 【发布时间】:2016-06-08 13:28:03 【问题描述】:关于 WebdriverIO 与 Selenium 与 Java 的任何反馈?我处于两难境地,想解决这个困惑。
我花了几天时间学习WebdriverIO,也做了一些实践,但得出的结论是它还不够成熟。调试确实是一个挑战。
【问题讨论】:
结论——webdriverIO不如Selenium成熟,它仍然成立吗,它仍然相关吗?有什么 Selenium 能做而 webdriverIO 不能做的吗? 【参考方案1】:WebdriverIO 是(Selenium 2.0)WebDriver API 的 javascript / nodejs 实现 - 许多(Selendroid、Protractor 等)之一正如specification 所说:
WebDriver 是一个远程控制界面,可以实现自省和 用户代理的控制。它提供了平台和语言中立的 有线协议作为进程外程序远程访问的一种方式 指导网络浏览器的行为。
如果您使用 Java,您将使用 Java implementation of WebDriver。您选择哪种语言和哪种实施取决于您自己、您的技能以及您团队的技能。
虽然我非常怀疑WebdriverIO“不够成熟”。 WebDriver 是一个很好的规范,具有许多强大的实现,但它经常被滥用。当然,就新手而言,很大一部分“随机”故障在他们的测试代码中是完全可以避免的竞争条件。
【讨论】:
谢谢 Andrew.. 我不明白你的最后一点 - 很大一部分“随机”失败在他们的测试代码中是完全可以避免的竞争条件。 如果我们选择 WebdriverIO(A javascript 方法)..如何调试代码。如果出现任何错误,我们需要查看功能文件、步骤文件、json 等...(只是找到由于哪个浏览器没有打开而导致的错误。) @user3559569 当我说我理解你的沮丧时,相信我。我自己是从 Java Selenium 开始的。 Andrew 所指的竞争条件是 Javascript 使用回调和承诺。 WebdriverIO 是一个了不起的工具,实际上包括大量的调试和日志工具。我首先在 wdio.conf.js 中设置 logLevel。此外,WebdriverIO 有一个调试命令,您可以使用它来暂停执行代码并检查浏览器 * webdriver.io/api/utility/debug.html @user3559569 我发现这些链接对于从 Java Selenium 切换到 WebdriverIO 非常有帮助:* peter.michaux.ca/articles/… * code.tutsplus.com/tutorials/… 非常感谢 jrader...但是 webdriver.io 本身没有完整的文档。如果您看到...大多数 appium API 没有完整的文档。其次,就调试而言担心,我们在我们有离岸和陆上模式的团队中工作....如果离岸左岸和陆上继续工作,反之亦然...有时IDE本身无法检测到的小语法错误 - 不允许要启动的浏览器。【参考方案2】:所以我们使用 Java - Selenium、Serenity、JBehave 测试框架,然后是 Javascript WebdriverIO、Mocha 和 Yodda。
我认为 Java 方法更易于理解和调试。更容易理解,因为网站测试大多是连续的,您从一个页面导航到另一个页面,单击一个按钮,然后填写表格。它使您免于使用 JS 替代方案遇到的任何异步问题。调试非常好,因为你有类和所有东西的固定结构。
第二个项目在后端使用 NodeJS,因此集成测试框架要容易得多。测试框架成为部署/开发过程的一部分。
【讨论】:
以上是关于WebdriverIO 与 Selenium Webdriver(Java 方法)的主要内容,如果未能解决你的问题,请参考以下文章
WebDriverIO Selenium 将命令行参数从 config.js 文件传递到 Chrome
WebdriverIO - 在 Android 和 iOS 上并行运行相同的代码
使用“ npm install wdio”安装webdriverIO时出错,
运行 Gitlab CI 作业以使用 webdriverio 执行自动化测试时出现“加载共享库时出错:libnss3.so”