Разница между webdriverjs и webdriverio
Я пытаюсь выбрать инструмент для тестов автоматизации Javascript.
До сих пор я использовал Selenium WebDriver в Java с TestNG для создания своих тестов, но меня попросили найти решение JavaScript для написания тестов.
Конечно, первым делом, на мой взгляд, было перейти на WebDriverJs - он должен быть похож на мои тесты Java.
Но я также нашел другую структуру: WebdriverIO. Я не мог найти ничего, что можно было бы сделать с помощью WebdriverIO, что невозможно с помощью WebDriverJs.
Пожалуйста, помогите мне разобраться в различии, чтобы я мог выбрать правильную структуру для меня.
Ответы
Ответ 1
"WebdriverJS" - это другое название selenium-webdriver, официальная реализация Node.JS JSONWire (протокол WebDriver Wire) командой Selenium.
"WebdriverIO" является независимой реализацией протокола JSON Wire от Christian Bromann (профиль SO), который работает в Sauce Labs, провайдере кросс-браузерного тестирования облачной базы. WebdriverIO обертывает свои запросы нижнего уровня полезными командами с кратким синтаксисом:
client
.url('http://google.com')
.setValue('#q','webdriver')
.click('#btnG')
Те же тесты с селен-webdriver сложнее:
driver.get('http://www.google.com');
driver.findElement(webdriver.By.id('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.id('btnG')).click();
По крайней мере семь клиентов Webdriver, написанных в Node.JS.
Ответ 2
WebdriverJS
на самом деле то, что WebdriverIO
упаковывается вместе с тестовым бегуном в формате пакета node.
На WebdriverJS, который будет работать WebdriverIO, ничего не может быть сделано.
Вы можете использовать WebdriverJS вместе с Jasmine или Mocha.
Конечно, обертки в WebdriverJS и WebdriverIO по-разному помечены, но это не меняет способ реализации протокола WDRE Webdriver.
Если вы тестируете приложения на основе AngularJS, в Protractor существует еще более оптимизированная реализация протокола WebDriver WIRE (который снова распространяется как пакет node).