javascript - 如何使用 Protractor 测试 Angular 多选下拉列表?

标签 javascript angularjs testing protractor multi-select

我正在使用来自 https://github.com/isteven/angular-multi-select 的 Angular 多选下拉列表.现在我想在 Protractor 中编写测试用例。

<div ng-show="!attribute.isMultivalued && page != 'view'" 
     class="select-group" 
     multi-select 
     input-model="typesDataDup"
     output-model="attribute.types"
     button-label="typeName"         
     item-label="typeName" 
     tick-property="ticked" 
     selection-mode="single"
     helper-elements="filter"
     is-disabled = "page == 'view'">
</div>

我无法使用模型发送数据,因为这里我们没有提到 ng-model。

谁能帮我写个测试用例?

最佳答案

您可以依赖其他属性并使用 by.css找到元素。例如:

element(by.css('div.select-group'))

element(by.css('div[multi-select]'))

据我所见 angular-multi-select source code ,选择选项用按钮元素表示。使用 element.all() 找到里面的所有按钮,然后点击所需的按钮,例如 Select All:

element.all(by.css('div[multi-select] button')).then(function(options) {
    options.forEach(function(option) {
        option.getText().then(function(text) {
            if (text.indexOf("Select All") != -1) {
                option.click();
            } 
        });
    });
});

关于javascript - 如何使用 Protractor 测试 Angular 多选下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27520961/

相关文章:

selenium - 如何自动化Java applet?

ruby-on-rails - 使用 Mocha Rails 的带有命名空间对象的 stub 实例

javascript - 冒泡排序算法有一个错误,一些编号列表在 NodeJS 中不能正确排序

javascript - 列表中间的中心图像有 50% 悬垂

javascript - jQuery 中的正则表达式匹配

JavaScript - 如何检查命令的执行是否完成?

javascript - AngularJS 1.0 和 1.2 之间 $interpolate 的差异

javascript - C# Web Api 获取方法

angularjs - Docker 和 Chromium 网络::ERR_NETWORK_CHANGED

unit-testing - Dart/flutter : Share common setUp/tearDown methods among test suites