所有使用量角器和黃瓜的角度e2e測試在我的機器上運行平穩順利。但只要我運行生成服務器上的測試中,我得到一個錯誤構建服務器上的量角器失敗 - ElementNotVisibleError
ElementNotVisibleError: element not visible
Session info: chrome=51.0.2704.84
Driver info: chromedriver=2.21.371459
platform=Windows NT 6.1 SP1 x86_64
在開始的時候,我認爲這事做具有定時,正在發生一些異步的東西,但調試我小時後甚至可以在我的本地機器上重現該錯誤。
最小化窗口是不夠的,但如果我快速拖動鼠標使窗口儘可能小,我得到這個錯誤。所以這只是「窗口大小」的問題。
Thus the error message is quite ok, but how are protractor meant to run on a build server?
爲什麼有些測試通過?量角器似乎「看」到構建服務器上的東西,從而
我試圖
browser.driver.manage().window().maximize();
我試圖
browser.manage().window().setSize(1920, 1200);
,我試圖改變我的代碼的建議here,我嘗試了很多更多(絕望)事物。沒有工作。
現在我的一個大問題:如何在構建服務器上以穩定的方式運行量角器測試(在我的情況下爲TFS)何時有最右邊的按鈕我想單擊某個頁面?
短代碼示例:
browser.get(browser.baseUrl + '#/somePage').then...
element(by.id(buttonId)).click();
謝謝!
UPDATE:
我的問題的主要原因是事實,屏幕分辨率在運行生成服務器上測試了寬度爲1024,因此的setSize(1920,1200)失敗。出於這個原因,我現在加入了onPrepare功能目前resoltuion的輸出,所以,我將在未來得到一個提示:
onPrepare: function() {
browser.executeScript('return { height: screen.availHeight, width: screen.availWidth, top: screen.availTop, left: screen.availLeft};').then(function (result) {
console.log("Screen resolution: ");
console.log(result);
});
browser.manage().window().setSize(1920, 1200);
當然,這可以延長一點點地拋出一個異常或東西喜歡這個。
快速檢查。你確定'buttonId'是唯一的嗎?..在輸出中會出現什麼情況:'element.all(by.id(「buttonId」))。count()。then(function(count){console.log(count);});'。? – alecxe
嗨@alecxe,非常感謝您的幫助。輸出是1. – timtos
好吧,你確定這不是一個時間問題?你有沒有嘗試過'browser.wait(EC.elementToBeClickable(element(by.id(buttonId))),5000);'哪裏'var EC = protractor.ExpectedConditions;'在點擊按鈕之前? – alecxe