2
控制量角器測試執行順序的最佳方法是什麼?量角器測試的執行順序
問題1:量角器如此快速地掃過角頁面以至於無法操作(填充)輸入數據。 (滑動邏輯將從不可見轉換爲可見,並將它們翻譯成窗口可見區域)。因此量角器無法看到超出窗口和不透明度0的人。爲了測試我只能填寫第一頁。其他人被刷得太快(或異步)。
問題案例2:在填寫第一頁並提交表格後,數據被保存並且警報顯示確認消息。然後量角器必須單擊一個下拉列表,瀏覽器應該導航到保存數據顯示的頁面。問題在於量角器在保存數據之前單擊下拉列表,由於稍後發出警報(必須等待警報)。
問題是:有沒有辦法控制在量角器中按給定順序執行測試?是否有辦法按住滑動來填寫日期(否則量角器不會看到它)?這裏是簡化代碼:
it('should fill in form and send data', function() {
// fill in textarea field
element.all(by.css('textarea')).first().clear().sendKeys('test');
// goes to page 2
browser.executeScript("angular.element(document.documentElement)
.injector().get('$rootScope').$broadcast('nextPage', {direction: 'next'});");
// Here is Problem 1. Though i can see this page when testing,
// the input is not visible for protractor.
// fill in input-field
element.all(by.css('input')).first().clear().sendKeys('test');
// goes to page 1
browser.executeScript("angular.element(document.documentElement)
.injector().get('$rootScope').$broadcast('prevPage', {direction: 'prev'});");
// submit form
element(by.css('button[type=submit]')).click();
// Here is problem 2. The following test is executed earlier
// than the following alert.
//browser.wait(protractor.ExpectedConditions.alertIsPresent(), 3000);
var alertDialog = browser.switchTo().alert();
expect(alertDialog.getText()).toEqual('Saved');
alertDialog.accept();
});
it('should click drop-down-list', function() {
// click drop-down list
element(by.css('.drop-down-list')).click();
});
的代碼片段添加您的測試之間的等待 – Emna
親愛的Emna,這個額外的等待阻止警報和警報從不顯示。或者我做錯了什麼。你能不能展示一個有效的代碼示例? –
我甚至試過browser.controlFlow()。timeout(3000);但它也會阻止警報。可能是我應該考慮browser.controlFlow()。execute(function(){browser.controlFlow()。execute(test); });但不知道如何通過觀察,以便它們應該被看到。 –