【问题标题】:Difference between webdriverjs and webdriveriowebdriverjs和webdriverio的区别
【发布时间】:2015-01-26 06:03:51
【问题描述】:

我正在尝试为 Javascript 自动化测试选择一个工具。

到目前为止,我使用 Java 中的 Selenium WebDriver 和 TestNG 来构建我的测试,但我被要求搜索 JavaScript 解决方案来编写测试。

当然,我首先想到的是转到WebDriverJs - 它应该类似于我的 Java 测试。

但是,我还发现了另一个框架:WebdriverIO。我找不到任何可以用 WebdriverIO 做的事情,而用 WebDriverJs 做不到。

请帮助我了解其中的区别,以便我选择适合我的框架。

【问题讨论】:

  • 请正确大写 Java 和 JavaScript - 它们不是首字母缩略词 :)

标签: javascript selenium


【解决方案1】:

“WebdriverJS”是 selenium-webdriver 的另一个名称,它是 Selenium 团队对 JSONWire (WebDriver Wire) Protocol 的官方 Node.JS 实现。

"WebdriverIO" 是由 Christian Bromann (SO profile) 独立实现的 JSON Wire 协议,他在 Sauce Labs 工作,该公司是云基础跨浏览器测试的提供商。 WebdriverIO 将其较低级别的请求包装成有用的命令,语法简洁:

client
    .url('http://google.com')
    .setValue('#q','webdriver')
    .click('#btnG')

与 selenium-webdriver 相同的测试更复杂:

driver.get('http://www.google.com');
driver.findElement(webdriver.By.id('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.id('btnG')).click();

至少有seven Webdriver clients written in Node.JS

【讨论】:

    【解决方案2】:

    WebdriverJS 实际上是 WebdriverIO 与测试运行程序一起以节点包格式打包的内容。 WebdriverIO 确实没有什么是 WebdriverJS 无法完成的。 您也可以将 WebdriverJS 与 Jasmine 或 Mocha 一起使用。

    当然,WebdriverJS 和 WebdriverIO 中的包装器标签不同,但这不会改变它们实现 Webdriver WIRE 协议的方式。

    如果您要测试基于 AngularJS 的应用程序,在 Protractor 中有一个更加简化的 WebDriver WIRE 协议实现(它再次作为节点包分发)。

    【讨论】:

    • 不完全。 Protractor实际上使用了WebDriverJs,它实现了有线协议,而WebdriverIO独立实现了有线协议。
    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2023-04-01
    • 2013-11-04
    • 2020-04-20
    • 1970-01-01
    • 2013-08-07
    • 2011-10-20
    相关资源
    最近更新 更多