Jestem doświadczonym profesjonalistą, który używaselen-webdriver. Odkrywam więcej opcji testowania aplikacji javascript i znalazłem webdriverJs. Niestety, nie rozumiem, jaka jest różnica między tymi dwoma (2).
Czy ktoś może wyjaśnić, kiedy używać selen-webdriver przez webdriverJs i korzyści?
Dzięki!
Odpowiedzi:
5 dla odpowiedzi № 1WebDriverJS i selen-webdriver są wiązaniami JavaScript dla interfejsu API Webdriver.
Jedyną różnicą jest to, że selen-webdriver jest oficjalną implementacją utrzymywaną przez zespół selenu, podczas gdy WebDriverJS nie jest. WebDriverJS jest obsługiwany przez stronę trzecią.
27 dla odpowiedzi nr 2
Zasadniczo robią to samo. Główną różnicą jest to, jak piszesz swoje testy. selen-webdriver to połączenie obietnic i callbacków - WebdriverIO działa tylko z obietnicami i może być używany jako samodzielny lub z wewnętrznym testrunnerem. Istnieje również biblioteka o nazwie wd.js. Oto przykład, jak wszystkie trzy smaki.
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
browser
.get("http://www.google.com")
.elementById("q")
.sendKeys("webdriver")
.elementById("btnG")
.click()
browser
.url("http://google.com")
.setValue("#q","webdriver")
.click("#btnG")
Koncepcja WebdriverIOs obejmuje cały protokółPolecenia w poręcznych poleceniach akcji, ale ma też prawie wszystkie polecenia protokołu zaimplementowane, więc możesz zrobić to samo ze standardowymi poleceniami protokołu 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);
});