在webdriverjs上有什么区别(以及何时使用)selenium-webdriver?

时间:2014-02-06 16:51:36

标签: javascript selenium selenium-webdriver

我是一名使用selenium-webdriver的体验专业人士。我正在探索更多关于如何测试javascript应用程序的选项,我找到了webdriverJs。不幸的是,我不明白这两者之间有什么区别(2)。

有人可以解释何时在webdriverJs上使用selenium-webdriver及其好处?

谢谢!

3 个答案:

答案 0 :(得分:27)

他们基本上做同样的事情。主要区别在于您如何编写测试。 selenium-webdriver是承诺和回调的混合--WebdriverIO只适用于promises,可以单独使用或与内部testrunner一起使用。还有一个名为wd.js的库。以下是三种口味的例子。

硒 - webdriverjs:

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

WD.js

browser
   .get("http://www.google.com")
   .elementById('q')
   .sendKeys('webdriver')
   .elementById('btnG')
   .click()

WebdriverIO

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

WebdriverIOs的概念是将所有协议命令包装在方便的动作命令中,但它几乎也实现了所有协议命令,因此您可以使用标准的JSONWire协议命令执行相同的操作。

browser
    .url('http://google.com')
    .element('#q').then(function(res) {
        return browser.elementIdValue(res.value.ELEMENT, 'webdriver');
    })
    .element('#btnG').then(function(res) {
        return browser.elementIdClick(res.value.ELEMENT);
    });

答案 1 :(得分:5)

WebDriverJS和selenium-webdriver都是Webdriver API的JavaScript绑定。

唯一的区别是selenium-webdriver是由selenium团队维护的官方实现,而WebDriverJS则不是。 WebDriverJS由第三方维护。

答案 2 :(得分:0)

我阅读了NPM的官方文档,似乎此线程上的“已接受”答案现在不正确(在原始帖子发布时,答案可能是正确的)。您可以查看NPM官方文档-

文档说-

  

项目现在称为WebdriverIO,并已移至GitHub上的webdriverio / webdriverio。请使用$ npm install webdriverio,因为不再维护该NPM项目!

文档说-

  

此软件包已被弃用。作者信息:寿命终止。上游发布了一个官方软件包:selenium-webdriver

因此,仅官方的Selenium-JavaScript库selenium-webdriver

希望这会有所帮助!