我们正在使用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)
}
}
}
})
}
}]
};
任何人都可以帮助在执行函数中访问这些元素吗?
提前致谢!