Nightwatchjs获得了几个输入值

时间:2017-08-01 13:59:38

标签: javascript selenium nightwatch.js

有没有办法使用 nightwatchjs 来获取多个输入的值?

我需要同时测试几个输入的值。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用getText或getValue方法,例如:

this.demoTest = function (browser) {
  browser.getText("#main ul li a.first", function(result) {
    this.assert.equal(typeof result, "object");
    this.assert.equal(result.status, 0);
    this.assert.equal(result.value, "nightwatchjs.org");
  });
};

this.demoTest = function (browser) {
  browser.getValue("form.login input[type=text]", function(result) {
    this.assert.equal(typeof result, "object");
    this.assert.equal(result.status, 0);
    this.assert.equal(result.value, "enter username");
  });
};

有api文件:getText API reference

答案 1 :(得分:1)

是的,您可以获得多个输入值:

第一个选项是回调(不推荐):

var text, text2, text3; // ...
browser.getValue('#inputField1', function (result) {
  text = result.value;
  browser.getValue('#inputField2', function (result) {
    text2 = result.value;
    browser.getValue('#inputField3', function (result) {
      text3 = result.value;
      browser.getValue('#inputField4' + text3, function (result) {
        console.log(text, text2, text3) // your code 
      });
    });
  });
});

其次,您可以使用文档中的perform()api(推荐):

var text, text2, text3;
browser
  .getValue('#input', function (result) {
    text = result.value;
    browser.getValue('#inputField2', function (result) {
      text2 = result.value;
    });
  })
  .perform(function () {
    browser.getValue('#inputField3', function (result) {
      console.log(text2, text 1) // they do exist here 
      text3 = result.value;
    });
  });

这是来自nightwatch Perform

的文档