Javascript selenium webdriver与WebDriverJ有什么区别(以及何时使用)?

Javascript selenium webdriver与WebDriverJ有什么区别(以及何时使用)?,javascript,selenium,selenium-webdriver,Javascript,Selenium,Selenium Webdriver,我是一名经验丰富的专业人士,使用selenium webdriver。我正在探索更多关于如何测试javascript应用程序的选项,我发现了WebDriverJ。不幸的是,我不明白这两者之间有什么区别 有人能解释一下什么时候使用selenium webdriver而不是WebDriverJ及其好处吗 谢谢 WebDriverJ和selenium webdriver都是webdriver API的JavaScript绑定 唯一的区别是,selenium webdriver是由selenium团队维

我是一名经验丰富的专业人士,使用selenium webdriver。我正在探索更多关于如何测试javascript应用程序的选项,我发现了WebDriverJ。不幸的是,我不明白这两者之间有什么区别

有人能解释一下什么时候使用selenium webdriver而不是WebDriverJ及其好处吗


谢谢

WebDriverJ和selenium webdriver都是webdriver API的JavaScript绑定


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

他们做的基本相同。主要区别在于如何编写测试。selenium webdriver是承诺和回调的混合体-WebDrivero只与承诺一起工作,可以作为独立的或与内部testrunner一起使用。还有一个名为wd.js的库。这是一个关于这三种口味如何搭配的例子

selenium webdriverjs:

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

:

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);
    });

我阅读了NPM的官方文档,似乎这个帖子上的“已接受”答案现在是不正确的(有可能在最初的帖子中答案是正确的)。您可以查看正式的NPM文档-

  • 对于WebDriverJS=>
文件说-

该项目现在名为WebDrivero,并已迁移到GitHub上的WebDrivero/WebDrivero。请使用$npm安装webdriverio,因为此npm项目不再维护

  • 对于selenium webdriverjs=>
文件说-

此软件包已被弃用。作者信息:生命的终结。上游发布了一个官方软件包:SeleniumWebDriver

因此,唯一的官方Selenium JavaScript库是


希望这有帮助

是的,我明白。就其使用的“测试web应用程序”而言,使用什么真的重要吗?一点也不重要。。尽管如此,我可能会注意到Selenium最初是一个Java项目,所以我认为可以安全地假设Java是测试和使用最多的。我建议这样做,但这完全取决于您的系统需要什么,以及什么是好的。我工作的地方是一家Java商店。如果您主要使用Ruby,请不要偏离太远。使用RubyAPI。如果你的应用程序是node js,我推荐webdriver js。一切由你决定。我明白了,谢谢。那么基本上,你是说webdriver和WebDriverJ都做同样的工作?编写测试的语言只是偏好的问题,我是说WebDriverJS只是SeleniumWebDriverAPI的JavaScript端口。你熟悉什么是WebDriver吗?我的直觉是否定的。你可能想看看Selenium RC和WebDriver的历史。不幸的是,讨论时间太长,无法发表评论/回答。是的,这真的只是一个选择你写什么语言的问题。Selenium有几个端口。Java、Python、JS、Ruby、PHP、C#,我可以继续。WebDriverJS只是JS的官方版本。@sircapsalot:我刚刚意识到你可能弄错了。令人困惑的是,有
npm install webdriverjs
npm install selenium webdriver
都是webdriver的JavaScript绑定。后者是官方的硒项目,第一个是单独的项目。也许这就是OP要问的。因此在OP的上下文中,
selenium webdriver
webdriverjs
指的是这两个不同的node.js包。感谢您的反馈。在您看来,为什么以及何时使用WebDriverJ?我所有的selenium测试都使用WebDriverJ。它是超级简单和高度可扩展的。但是作为这个库的维护者,我可能对此有不同的看法。一般说明:WebdriverJS现在被称为WebdriverIO,应该与
npm install WebdriverIO
一起安装。您仍然可以
npm安装webdriverjs
,但它已被弃用,并且不再维护该npm项目。
browser
    .url('http://google.com')
    .setValue('#q','webdriver')
    .click('#btnG')
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);
    });