从元素ID获取Json元素值

时间:2016-08-08 14:21:33

标签: javascript arrays json selenium nightwatch.js

在学习javascript和javascript fm时有另一个问题。所以我想了解如何访问

ini_set('max_execution_time', 120); //120 seconds

因为这里面是关于这个数组的详细信息。

下一步,我需要像json格式那样执行

{ Element: 1 }, { Element: 2},... 

并且喜欢这样,但我需要为任何

获取此信息
[{name: "MyName", surname: "mySurname"}, {name: "MyName", surname: "mySurname"}]

我正在使用nightwatch.js,我的代码现在看起来像:

{ Element:1}, {Element:2}, ....

执行

.elements('css selector', 'ul li', function(res){
    console.log(res.value)
    console.log(res.value[1].ELEMENT)
    browser.elementIdAttribute(res.value[1].ELEMENT, 'li', function(newRes) {
      console.log(newRes.value)
    })
  })

这是html:

[ { ELEMENT: '1' },
  { ELEMENT: '2' },
  { ELEMENT: '3' },
  { ELEMENT: '4' } ]
2
null

以下是文档的链接(如果需要)http://nightwatchjs.org/api#elementIdValue

1 个答案:

答案 0 :(得分:1)

您无法实现的目标。

你得到null因为你使用了错误的命令。 正如您在此处所看到的,它用于值设置为元素。 https://github.com/nightwatchjs/nightwatch/blob/master/lib/api/element-commands.js#L293

您真正想要的是使用.elementIdText,如:

module.exports = {
  'Test' : function(browser) {

    function iterate(elements) {
      elements.value.forEach(function(el) {
        browser.elementIdText(el.ELEMENT, function(r) {
          console.log(r.value);
        });
      });
    }

    browser
      .url('http://simsonivini.lv/nightwatch.php')
      .waitForElementVisible('body', 8000)
      .elements('css selector', 'ul li div', iterate)
      .end();
  }
};