angularjs - Protractor :从嵌套元素创建数组

标签 angularjs testing protractor

我正在尝试获取我的 DOM 中的元素并将它们作为数组返回。它们是嵌套的。我想让 Protractor 返回这样的东西:

{
 category_title: "cat1",
 items: {item_title: "item1"}, {item_title: "item2"}
},
{
 category_title: "cat2",
 items: {item_title: "item1"}, {item_title: "item2"}
}

DOM:

<div ng-repeat="category in categories">
    <div id="category-title">{{ category.title }} </div>
    <div ng-repeat="item in category.items">
        <div id="item-title">{{ item.title }} </div>
    </div>
</div>

这就是我在 Protractor 中尝试的:

return element.all(by.repeater("category in categories")).map(function(elm) {
    var category_title = elm.element(by.id('category-title')).getText(),
    var t = {
              category_title: category_title,
              dimensions: {}
            };
    // After this part, I'm lost...
    return elm.all(by.repeater("item in category.items")).map(function(elm) {
        return {
                 category_title:  category_title,
                  dimension:  elm.element(by.id('item-title')).getText(),
               }
        });
});

最佳答案

这似乎可行,但我不能 100% 确定它是正确的

return element.all(by.repeater("category in categories")).map(function(elm) {
    return {
               category_title: elm.element(by.id('category-title')).getText(),
               items: elm.all(by.id("item-title")).getText()
           }
})

关于angularjs - Protractor :从嵌套元素创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28237448/

相关文章:

javascript - Angularjs 1.x 中的 Typescript 继承

testing - 将服务注入(inject) Angular 单元测试时出现未知提供程序错误

javascript - 是否可以使用 Protractor 将 for 循环运行到 .then 中?

javascript - 如何测试默认导出的js文件?

javascript - 如何通过匹配文本来选择下拉选项?

memory-leaks - 跟踪 Protractor 测试执行所消耗的浏览器内存的最有效方法是什么?

javascript - 无法在 angularjs Controller 中分配下拉选择值。

javascript - Protractor>Package.json 配置> 在我的 mac 书中找不到 .bin 文件夹

javascript - $event.stopPropagation() 运行但父事件仍然执行

macos - 如何在 OS X Mavericks 上获取本地旧版本的 Safari?