2014-11-27 14 views
19

Ich versuche, ein Werkzeug für Javascript-Automatisierungstests zu wählen.Unterschied zwischen webdriverjs und webdriverio

Bisher verwendete ich Selen WebDriver in Java mit TestNG meinen Tests zu bauen, aber ich bin gebeten worden, für JavaScript-Lösung zu schreiben Tests zu suchen.

Natürlich ist das erste, was auf meinem Kopf war zu WebDriverJs bewegen - es soll auf meine Java-Tests ähnlich sein.

Aber, fand ich auch einen anderen Rahmen: WebdriverIO. Ich konnte nichts finden, was mit WebdriverIO möglich wäre, was mit WebDriverJs nicht möglich ist.

Bitte helfen Sie mir den Unterschied zu verstehen, so dass ich den richtigen Rahmen für mich wählen.

+2

Bitte Großbuchstaben Java und JavaScript richtig - sie sind nicht Akronyme :) –

Antwort

23

"WebdriverJS" ist ein anderer Name für selenium-webdriver, die offizielle Node.JS-Implementierung des JSONWire (WebDriver Wire) Protocol vom Selenium-Team.

"WebdriverIO" ist eine unabhängige Implementierung des JSON Wire Protocol von Christian Bromann (SO profile), der an Sauce Labs, ein Anbieter von Cloud-Basisprüfung Cross-Browser funktioniert. WebdriverIO wickelt seine untere Ebene Anfragen in nützliche Befehle mit einer kurzen Syntax:

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

Der gleiche Test mit Selen-WebDriver komplizierter ist:

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

Es gibt mindestens seven Webdriver clients written in Node.JS.

3

WebdriverJS ist eigentlich was WebdriverIO zusammen mit einem Test-Runner in einem Knoten-Paket-Format verpackt. Es gibt wirklich nichts, was mit WebdriverJS nicht möglich wäre, das WebdriverIO tun würde. Sie können WebdriverJS auch mit Jasmine oder Mocha verwenden.

Natürlich sind die Wrapper in WebdriverJS und WebdriverIO unterschiedlich markiert, aber das ändert nichts an der Art, wie sie WebDriver WIRE Protokoll implementieren.

Wenn Sie AngularJS-basierte Apps testen möchten, gibt es eine noch rationellere Implementierung des WebDriver WIRE-Protokolls in Protractor (das wiederum als Knotenpaket vertrieben wird).

+2

Nicht ganz. Der Winkelmesser verwendet tatsächlich WebDriverJs, was das Drahtprotokoll implementiert, während WebdriverIO das Drahtprotokoll unabhängig implementiert. – titusfortner