2015-09-01 2 views
2

я попробовал все варианты, указанные в this Q&A:Ни waitForAngular, ни "а затем" работать, как ожидалось

первые один

element(by.css('[ng-click="vm.openNewPage()"]')).click().then(function() { 
     expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true); 
    }); 

второй

element(by.css('[ng-click="vm.openNewPage()"]')); 
browser.waitForAngular();   
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true); 

третий:

element(by.css('[ng-click="vm.openNewPage()"]')); 
browser.sleep(1) 
browser.waitForAngular();   
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true); 

ни один из них не проходит тест: Ожидается, что false будет true. кроме этого с browser.sleep (1000)

element(by.css('[ng-click="vm.openNewPage()"]')); 
browser.sleep(1000) 
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true); 

Положив несколько секунд для сна время, очевидно, не является решением проблемы.

Что мне не хватает или что я должен сделать, чтобы оценить тест успешно

транспортир версии: Версия 2.1.0 с Jasmine2 рамками

Это моя команда, чтобы начать тест:

C:\projects\eucngts\e2e\app>protractor conf.js --baseUrl=http://localhost:56225/euc/ 

И это мои соответствующие коды:

// conf.js 
exports.config = { 
    directConnect: true, 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    framework: 'jasmine2', 
    specs: [ 
     './views/account/loginSpec.js' 
     ,'./views/inStudents/inStudentsSpec.js' 
    ] 
} 

//Spec File 
describe('Testing Students Page', function() { 

    var inStudents: InStudents = require('./inStudents.js'); 
    var defs: Defs = require('../defs.js'); 
    it('should check cell 2 2 ', function() { 
     inStudents.createNewInStudent() 
    }); 
}); 

//Testing file 

class InStudents { 

     createNewInStudent() { 
      element(by.css('[ng-click="vm.openNewPage()"]')); 
      browser.sleep(1000) 
      expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true); 
     } 
    } 
module.exports = new InStudents(); 
+0

Сделайте себе одолжение, и назначить семантический идентификатор для кнопок вместо размещения их на то, что вы положили в нг щелчка. Мы не можем помочь без кода. –

+1

Сделано что. Я все еще не знаю, что делает кнопка. Вы только что изменили имя функций. –

ответ

1

Вместо этого из browser.sleep() задержки, сделать его явным с browser.wait() и wait for the element to become present:

var submitButton = element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')); 
var EC = protractor.ExpectedConditions; 
browser.wait(EC.presenceOf(submitButton), 5000); 
+0

Спасибо @alecxe много. Кажется, что 'browser.wait()' устарел с 'proctrator 2.1.0', правильно? –

+0

@asdf_enel_hak рад помочь. Нет, 'browser.wait' происходит из' webdriverjs', он определенно остается там (https://github.com/angular/protractor/blob/master/CHANGELOG.md). Благодарю. – alecxe

+0

Я сказал неправильный. Я имел в виду: «ожидать (myelement) .isPresent()). ToBe (true)' устарел. Вместо этого используется 'browser.wait (EC.presenceOf (myElement), 5000);' будет использоваться? –