如何从量角器中的Promise中获取嵌套的JSON

Machtyn

我正在测试一个输出一些数据的页面,我想将该数据捕获到JSON对象中。数据显示如下(以html为单位)

<cards>
  <card>
    <div id="name">Joe</div>
    <div id="web">
      <a target="_blank" href="http://joessite.com">joessite.com</a>
    </div>
  </card>
  <card>
    <div id="name">Frank</div>
    <div id="web">
      <a target="_blank" href="http://frankssite.com">frankssite.com</a>
    </div>
  </card>
</cards>

我希望得到的JSON对象是:

[ {
    name: "Joe",
    web: {
        text: "joessite.com",
        link: "http://joessite.com"
    }
  },
  {
    name: "Frank",
    web: {
        text: "frankssite.com",
        link: "http://frankssite.com"
    }
  } ]

所以我写了下面的代码:

var cardDataToJSON = function() {
    var result = {};

    $$('cards card').each(function (card) {
        card.$('#name').getText().then(function (text) { result["name"] = text; });

        var web = {};
        card.$('#web').getText().then(function (text) { 
            web["text"] = text; 
        });
        card.$('#web').getAttribute('href').then(function (href) { 
            web["href"] = href; 
        });

        result.web = web;
    });

    return result;
};

不幸的是,我的实际结果是(请注意第一个“ web”为空白)。

[ {
    name: "Joe",
    web: { }
  },
  {
    name: "Frank",
    web: {
        text: "frankssite.com",
        link: "http://frankssite.com"
    }
  } ]

我做错了什么或需要改进我的代码?

(我正在使用量角器版本3.2.2)

ec

我会用map()protractor.promise.all()

var cardDataToJSON = function() {
    return $$('cards card').map(function (card) {
        var name = card.$('#name').getText(),
            web = card.$('#web a').getText(),
            href = card.$('#web a').getAttribute('href');

        return protractor.promise.all([name, web, href]).then(function (values) {
            return {
                name: values[0],
                web: {
                    text: values[1],
                    link: values[2]
                }
            }
        });
    });
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从量角器中的Promise中获取嵌套的JSON

来自分类Dev

如何避免量角器中的深层嵌套承诺

来自分类Dev

简化量角器中的嵌套承诺

来自分类Dev

如何在量角器中获取页面的来源

来自分类Dev

如何在量角器 + VSCode 中获取 mssql 输出

来自分类Dev

从量角器中的Repeater获取文本

来自分类Dev

在量角器中,何时使用protractor.promise.controlFlow()>

来自分类Dev

如何控制量角器测试中不返回promise的方法的流程

来自分类Dev

量角器-获取列表中的特定元素

来自分类Dev

获取量角器中的元素属性值

来自分类Dev

使用量角器获取跨度中的文本

来自分类Dev

量角器无法从列表中获取输入文本

来自分类Dev

如何使用量角器从表中获取行及其列

来自分类Dev

如何使用量角器在下拉列表中随机获取元素?

来自分类Dev

使用量角器时如何从内部函数中获取价值

来自分类Dev

如何使用量角器在ng重复列表中获取按钮

来自分类Dev

如何从带有量角器的元素中获取孩子的数量?

来自分类Dev

如何获取行号,这样行应该包含量角器中的特定文本

来自分类Dev

如何在量角器中获取当前 Url 的字符串?

来自分类Dev

如何在量角器中从 JSON 对象中提取字符串

来自分类Dev

量角器如何从div获取文本?

来自分类Dev

量角器-如何获取新的URL

来自分类Dev

如何仅在量角器中运行失败的测试

来自分类Dev

如何在量角器测试规格中包含lodash?

来自分类Dev

如何检查量角器中DOM元素的存在?

来自分类Dev

如何在量角器中创建和操纵承诺?

来自分类Dev

如何在量角器中更改URL

来自分类Dev

如何在量角器中捕获ngToast消息

来自分类Dev

如何单击量角器中的隐藏元素?

Related 相关文章

热门标签

归档