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

Maj*_*jor 10 javascript selenium selenium-webdriver

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

有人可以解释什么时候使用selenium-webdriver over webdriverJs和好处?

谢谢!

Chr*_*anB 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();
Run Code Online (Sandbox Code Playgroud)

WD.js

browser
   .get("http://www.google.com")
   .elementById('q')
   .sendKeys('webdriver')
   .elementById('btnG')
   .click()
Run Code Online (Sandbox Code Playgroud)

WebdriverIO:

browser
    .url('http://google.com')
    .setValue('#q','webdriver')
    .click('#btnG')
Run Code Online (Sandbox Code Playgroud)

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);
    });
Run Code Online (Sandbox Code Playgroud)


dda*_*son 6

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

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