【问题标题】:Protractor: creating an array from nested elements量角器:从嵌套元素创建数组
【发布时间】:2015-01-30 13:56:14
【问题描述】:

我试图在我的 DOM 中获取元素并将它们作为数组返回。它们是嵌套的。我希望量角器返回如下内容:

{
 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>

这是我在量角器中尝试的:

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(),
               }
        });
});

【问题讨论】:

    标签: angularjs testing protractor


    【解决方案1】:

    这似乎可行,但我不能 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()
               }
    })
    

    【讨论】:

    • 要获得您指定的初始输入,您可以将 items: elm.all(by.id("item-title")).getText() 替换为 items: elm.all(by.id("item-title")).map(function(elm2) {return {item_title: elm2.getText()}}) 但您的答案是准确的,只是格式不匹配
    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    相关资源
    最近更新 更多