Ошибка "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);
Это позволит перейти на страницу до начала любых тестов и убедиться, что все загружено.