我是一名使用selenium-webdriver的体验专业人士。我正在探索更多关于如何测试javascript应用程序的选项,我找到了webdriverJs。不幸的是,我不明白这两者之间有什么区别(2)。
有人可以解释何时在webdriverJs上使用selenium-webdriver及其好处?
谢谢!
答案 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()
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
希望这会有所帮助!