2016-04-29 70 views
3

我已經設置了Selenium webdriver框架來處理AngularJS應用程序。但是,我正在使用很多等待和Thread.sleep(),這使我的腳本變得脆弱。我使用Selenium Webdriver(Java),我應該使用ngWebDriver還是Protractor?

我聽說過很適合AngularJS應用程序執行自動化的ngWebdriver和Protractor。

我對Java有了解,但對JavaScript沒有想法。

我應該使用ngWebDriver還是學習JavaScript來實現量角器?

回答

3

那麼,你將不得不學習一些JavaScript的量角器。但是我會建議學習Protractor,因爲它是由Angular團隊在谷歌專門爲Angular測試製作的(儘管它也可以用於非Angular)。

量角器將消除所有這些等待和睡眠,因爲它使用隱式等待並在Angular完成與頁面同步之後觸發測試。您還將獲得更多關於量角器框架的支持,文檔和信息。

5

我認爲ngWebDriver能夠處理您遇到的問題。 WebDriver2.0最大的問題在於它無法處理異步元素調用,這是ngWebDriver進入圖片的地方,代碼new NgWebDriver(driver).waitForAngularRequestsToFinish();將在那裏滿足您的需求。

鑑於,如果您對java腳本的自動化腳本感到滿意,那麼量角器將是唯一的最佳選擇。 但是,你也應該考慮像Java腳本的IDE其他點記事本或NP + +不會是好的選擇,因爲它不會支持關鍵的感官和一些最好的IDE也支付(如webstorm),而你可以做一些簡單的使用eclipse作爲編輯器,但在此之前,您應該考慮量角器的範圍,因爲您可以看到java腳本框架的快速增長。客戶端JS框架的增長速度比以往更快。你將不得不考慮你的職業觀點,因爲現在ReactJS的發展速度超過了角JS,並且在不久的將來,你將不得不再次開啓webdriver(儘管它取決於項目和它的要求)。

AngularJS - 在(2010年)推出 - 針對Git樞紐星星48874個& & ReactJS - 在(2013年)推出,但得到了41283的Git樞紐星

結論:最好是去與ngWebDriver,給它一個看看它是否滿足你的需求,然後堅持下去,因爲你已經設計了框架,否則沒有比量角器更多的選擇。

0

Imo測試是同步活動。但量角器本質上是異步的。雖然它試圖使測試執行sychronus,但它並不總是sychronus。你有辦法,解決方法,使其同步。海事組織爲什麼選擇asychrnous工具,然後嘗試使它同步,去java,ngwebdriver這是sychronus。 另外如果你想使用staf等代理,java會更容易。 注:我已經使用了量角器,計劃給ngwebdriver一個去。

0

如果您正在使用的Java已經那麼你將無法使用量角器,因爲它只會與的JavaScript工作。只需將ngWebDriver庫添加到您的項目中,這將幫助您在當前框架內輕鬆處理角度應用程序。