Nightwatch访问内部执行元素

时间:2017-07-17 10:43:57

标签: nightwatch.js

我们正在使用nightwatch中的Page对象来检查js页面的登录功能。并使用“@”注释来访问元素,但这些元素在perform函数中是不可访问的。以下是供参考的代码:

'use strict';

var paths = require('../../../e2e/paths/paths.js');
var loginData = require('../../../e2e/data/loginData.js');

module.exports = {
url: paths.launchPath,
  elements: {
    username: {
      selector: 'input[name^="username"]'
    },

  },
  commands: [{
    signIn: function() {
      return this
        .waitForElementPresent('@headerTitle', 10000)
        .api.perform(function() {
          var nodeLength = loginData.login.length;
          console.log(nodeLength);
          this.api.waitForElementPresent('input[name^="username"]', 10000)


          for(var i=0; i<nodeLength; i++) {
            console.log('Going for iteration # ' + i  + loginData.login[i].criteria);
            if(loginData.login[i].criteria=='success'){
              console.log('success ' + loginData.login[i].criteria + i);
              this.api.waitForElementPresent('input[name^="username"]', 10000)
              this.api.pause(6000)
              this.api.clearValue('input[name^="username"]')
              this.api.setValue('input[name^="username"]', loginData.login[i].usernam)


            }
            }
          }
        })
    }
  }]
};

任何人都可以帮助在执行函数中访问这些元素吗?

提前致谢!

0 个答案:

没有答案