我正在尝试 E2E 测试我的 angularjs 应用程序。它有一个 select2 选择框,其中填充了来自 API 的项目。此 select2 选择框具有将添加到搜索中的过滤器列表。
<input id="filter-select2" ui-select2="dataArray" ng-model="selected"/>
我遇到的问题是我似乎无法在我正在做的 E2E 测试中打开选择框。如果我加载应用程序,我可以$('#s2id_filter-select2').select2('open');
在 Chrome Javascript 控制台中打开 select2 选择框。我也能做到angular.element('#s2id_filter-select2').select2('open');
。
但是,如果我尝试在 E2E 测试中自己执行此操作,则该元素似乎没有.select2()
.
我都试过element('#s2id_filter-select2').select2('open');
了
element('#s2id_filter-select2').query(function (e, done) {
e.select2('open');
done();
});
在 E2E 测试中。我可以.fadeOut()
在后一个示例中调用 ( element().query()
),但不能调用.select2()
。
我尝试在 E2E 测试配置中包含 select2.js 和 angularui.js(我正在使用来自 angular-ui 的指令),但这并没有改变任何东西。
有没有人成功地从 E2E 测试中调用一些 jQuery 库,例如 select2?
我也想过直接跳过select2框,也就是直接设置“selected”模型,因为我有一个$watch会在filter select上更新应用程序,但是我好像找不到设置模型的方法通过测试本身。
e2e 配置使用以下文件:
files = [
ANGULAR_SCENARIO,
ANGULAR_SCENARIO_ADAPTER,
'tests/students/scenarios/*.scenario.js',
'dev/students/js/script.js',
'dev/students/js/*.js'
];
我尝试在测试/和开发/文件之前和之后都包含 select2、jQuery 和 angular-ui。
编辑:我可以使用 设置选定的模型input('selected').enter('sth');
,但我似乎无法将其设置为模型。我可能需要为此编写自定义 DSL?