我是一名使用selenium-webdriver的體驗專家。我正在探索更多關於如何測試javascript應用程序的選項,並且發現了webdriverJs。不幸的是,我不明白這兩個(2)之間有什麼區別。selenium-webdriver與webdriverjs有何區別(以及何時使用)?
有人可以解釋什麼時候使用硒webdriver通過webdriverJs和好處?
謝謝!
我是一名使用selenium-webdriver的體驗專家。我正在探索更多關於如何測試javascript應用程序的選項,並且發現了webdriverJs。不幸的是,我不明白這兩個(2)之間有什麼區別。selenium-webdriver與webdriverjs有何區別(以及何時使用)?
有人可以解釋什麼時候使用硒webdriver通過webdriverJs和好處?
謝謝!
WebDriverJS和selenium-webdriver都是Webdriver API的JavaScript綁定。
唯一的區別是selenium-webdriver是由Selenium團隊維護的官方實現,而WebDriverJS則不是。 WebDriverJS由第三方維護。
是的,我明白這一點。就其使用的「測試網絡應用程序」而言,它使用什麼真的很重要? – Major
根本沒有......儘管我可能會注意到Selenium最初是一個Java項目,所以我認爲可以安全地假設Java是最經過測試和使用的。我建議這樣做,但這完全取決於你的系統需要什麼,什麼是好的。在我工作的地方,這是一家Java商店。如果你主要使用Ruby,不要偏離太遠。使用Ruby api。如果你的應用程序是節點js,我建議webdriver js。全取決於你。 – sircapsalot
我看到謝謝。所以基本上,你在說什麼webdriver和webdriverJs都做同樣的工作?這只是一個偏好什麼語言來編寫測試的問題。 – Major
他們做基本相同的事情。主要區別在於你如何編寫測試。 selenium-webdriver是承諾和回調的組合--WebdriverIO只能與承諾一起工作,可以作爲獨立或與內部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概念是包裝在方便的動作命令的所有協議命令,但它也具有幾乎所有的協議命令都實現了,所以你可以用標準的JSON做同樣的事情Wire協議命令。
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);
});
感謝您的反饋意見。您認爲,爲什麼以及何時使用webdriverJs? – Major
我使用WebdriverJS進行所有硒測試。它超級簡單,高度可擴展。但作爲這個圖書館的維護者,我可能對此有不同的看法。 – ChristianB
一般注意事項:WebdriverJS現在稱爲WebdriverIO,應該使用'npm install webdriverio'安裝。您仍然可以'npm install webdriverjs',但它已被棄用,並且不再維護NPM項目。 – user2859458