webdriverjs和webdriverio之间的区别

时间:2014-11-27 15:27:09

标签: javascript selenium

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

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

当然,我的第一件事就是转移到WebDriverJs - 它应该与我的Java测试类似。

但是,我还找到了另一个框架:WebdriverIO。我找不到任何可以使用WebDriverJs无法实现的WebdriverIO。

请帮助我理解差异,以便为我选择合适的框架。

2 个答案:

答案 0 :(得分:27)

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

"WebdriverIO"Christian BromannSO profile)的JSON Wire Protocol的独立实现,他在Sauce Labs工作,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

答案 1 :(得分:2)

WebdriverJS实际上是WebdriverIO与节点包格式的测试运行器一起打包的内容。 WebdriverIO将无法完成WebdriverJS所做的任何事情。 您也可以使用WebdriverJS以及Jasmine或Mocha。

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

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