У меня есть частичный с ВЫБ.2 элемента с использованием Угловое UI http://angular-ui.github.io/Angularjs Е2Е Тестирование с помощью радиально-UI Выбор2 Element
Проблема Я бегу в том, что требуется элемент, и, хотя я успешно установить поле через следующий код, требуемый атрибут не удаляется, поскольку модель Angular не должна обновляться из-за внешнего изменения, и я не уверен, как либо предоставить $ scope.apply(), либо использовать другую функцию Angular для продолжения теста.
Во-первых, чтобы обеспечить прямые функции JQuery для запуска: (взято из How to execute jQuery from Angular e2e test scope?)
angular.scenario.dsl('jQueryFunction', function() {
return function(selector, functionName /*, args */) {
var args = Array.prototype.slice.call(arguments, 2);
return this.addFutureAction(functionName, function($window, $document, done) {
var $ = $window.$; // jQuery inside the iframe
var elem = $(selector);
if (!elem.length) {
return done('Selector ' + selector + ' did not match any elements.');
}
done(null, elem[functionName].apply(elem, args));
});
};
});
Затем изменить значение поля:
jQueryFunction('#s2id_autogen1', 'select2', 'open');
jQueryFunction('#s2id_autogen1', 'select2', "val", "US");
jQueryFunction('#s2id_autogen1', 'select2', 'data', {id: "US", text: "United States"});
jQueryFunction('.select2-results li:eq(3)', 'click');
jQueryFunction('#s2id_autogen1', 'trigger', 'change');
jQueryFunction('#s2id_autogen1', 'select2', 'close');
input('request._countrySelection').enter('US');
Заметьте, что не все из этих функций, необходимых для отражают изменения в ui, просто все, что я использовал, чтобы попытаться получить эту работу ...
если элемент имеет атрибут ID, то ДИВ создатель выбор2 будет s2id_ –