я тестирую приложение AngularJS с Protractor. Но у меня возникли проблемы с тестированием кода, вставленного с помощью ng-include.
Я получаю эту ошибку «Ошибка: элемент не найден с использованием локатора: By.id», когда я пытаюсь найти элемент, который был вставлен с помощью ng-include.
Если я запускаю транспортир в режиме отладки и проверяю страницу после завершения ng-include, я нахожу это в html «‹--ng-include-->» вместо элемента, который должен был быть там.
Я использовал Karma для проведения тестов, но не мог проверить, есть ли там элементы. Затем я прочитал некоторую документацию, и в ней говорилось, что Protractor больше подходит для этого, но, похоже, у меня та же проблема.
app.js
$scope.setNewWindow = function () {
var elem = $compile('<div ng-controller="myCtrl" class="windows-frame" id="window' + windowID + '">' +
'<div ng-include src="\'includes/elemToInclude.html\'"></div>' +
'</div>')($scope);
$("#main").append(elem);}
test.js
it('test', function() {
browser.executeScript("var scope = angular.element( document.querySelectorAll('#main')[0] ).scope();" +
"scope.setNewWindow()");
element(by.id('include_element_id')).click();
});