Угловые /JQuery-селектора приводят к ошибке при запуске Protractor

Я получаю сообщение об ошибке при работе с карма + транспортиром на угловом проекте. Я пробовал несколько разных методов для выбора элементов, все они приводят к ошибке.

Я ищу способ заставить его работать/игнорировать эту функцию при запуске тестов.

Это строка, которая не проходит тесты:

var chart = angular.element(document.querySelector("#chart2")).highcharts();

Эта строка приводит к:

TypeError: "undefined" не является функцией (оценка "угловой.элемент" (document.querySelector("# chart2")). Highcharts() ')

Я попробовал несколько разных методов:

Я меняю строку на:

var chart = $("#chart2").highcharts();

и получил следующую ошибку:

ReferenceError: Не удается найти переменную: $

Я также попытался изменить эту строку следующим образом:

var chart = angular.element("#chart2").highcharts();

И затем я получил следующую ошибку:

Ошибка: [jqLite: nosel] Поиск элементов с помощью селекторов не поддерживается jqLite! См.: http://docs.angularjs.org/api/angular.element http://errors.angularjs.org/1.2.4/jqLite/nosel

Важно, что все 3 варианта работают на угловых.

Я ищу способ заставить его работать/игнорировать эту функцию при запуске тестов.

Любая идея, которая может работать?

2 ответа

Эти параметры, вероятно, будут работать, если у вас есть jQuery. Похоже, ваш тест использует угловой встроенный jqLite, где эти функции недоступны.

Угловой может использовать jQuery, если он присутствует в вашем приложении, когда приложение загружается. Если jQuery отсутствует в вашем пути к скрипту, Angular возвращается к своей реализации подмножества jQuery, которое мы называем jQLite. - https://docs.angularjs.org/api/ng/function/angular.element

Возможно, попробуйте добавить jQuery в конфигурацию вашей кармы? Загрузка jQuery до углового должна работать.

например, в конфигурации вашей кармы:

files: [
'libs/jquery.js',
'libs/angular.js'
]


Вы можете получить из-за чего-то поблизости

expect(element(by.xpath('//highcharts')).isPresent()).toBe(true);

licensed under cc by-sa 3.0 with attribution.