Ошибка "angular is notfined" при выполнении теста транспортира для углового приложения, хранящегося в Liferay

Я работаю на виртуальном хосте Ubuntu 14.04 и пытаюсь создать несколько тестов E2E с PROTRACTOR for и приложением, размещенным в "Liferay".

Для секции входа в систему (для которой не требуется угловой) тест с транспортиром в порядке, страница регистрируется и перемещается правильно, но когда я пытаюсь открыть "выпадающее" меню в приложении на основе angularjs со следующим кодом:

<select class = "form-control menu-select ng-pristine ng-valid"
ng-model = "topTitlesData.topFiveDateRange"
name = "topFiveDateRange"
ng-options = "range.name for range in        topTitlesData.topFiveDateRangeValues"
ng-change = "" > < option value = "0" > Last day < /option><option value="1">Last 5 days</option > < option value = "2" > Last 7 days < /option><option value="3">Last 30 days</option > < option value = "4" > last 90 days < /option></select>

я получил этот журнал ошибок:

UnknownError: неизвестная ошибка: угловой не определен

This is the test script on js:


describe('pages with login', function() {
  it('should log in with a non-Angular page and select and option', funcion() {
    browser.ignoreSynchronization = true;
    browser.get('***************');
    element(by.id('_58_login')).clear();
    element(by.id('_58_login')).sendKeys('*******');
    expect(element(by.id('_58_login')).getAttribute('value')).toEqual('*****');
    element(by.id('_58_password')).sendKeys('*****', protractor.Key.ENTER);
    browser.get('***************');
    //browser.ignoreSynchronization = false;
    var selects = element.all(by.model('topTitlesData.topFiveDateRange'));
    expect(selects.count()).toEqual(5);
  });
});

мне интересно, что мне не хватает?

у меня есть nodejs, транспортир, webadmin-менеджер,jdk7.* установлен и обновлен

2 ответа

Решение

Спасибо, проблема заключалась в том, что тесты не дожидались угловых загрузок на страницу... поэтому я настроил локальный хост с приложением с гемами "Grunt", "Yeoman" и Ruby + "ruby-compass" и избежал Liferay. Я тоже настроил

allScriptsTimeout: 5000000,

в файле config.js и теперь тесты работают нормально.

Возможно, проблема в том, что ваши тесты запускаются до полной загрузки страницы браузера. angular Глобальная переменная еще не создана. Вы можете убедиться, что все было загружено до начала тестирования, поместив следующую строку в protractor.conf.js файла onPrepare метод:

browser.driver.get(browser.baseUrl);

Это позволит перейти на страницу до начала любых тестов и убедиться, что все загружено.

Другие вопросы по тегам