根据
Nightwatch docs
,在页面对象中导出的任何命令都应该是普通JavaScript对象,键是命令名,值是函数。例如:
var googleCommands = {
submit: function() {
this.api.pause(1000);
return this.waitForElementVisible('@submitButton', 1000)
.click('@submitButton')
.waitForElementNotPresent('@submitButton');
}
};
module.exports = {
commands: [googleCommands],
elements: //...etc ...
// etc...
}
在本例中,模块导出
googleCommands
,这是一个具有键的命令对象(
提交
)以及相应的函数。我认为您应该按照以下方式重构代码:
function fillAndSubmitLogin = {
fillAndSubmitLogin: function(email, password) {
return this
.waitForElementVisible('@emailInput')
.setValue('@emailInput', email)
.setValue('@passwordInput', password)
.waitForElementVisible('@loginSubmitButton')
.click('@loginSubmitButton');
}
};
当然,您不必在两个位置都使用相同的命令名(如示例所示)(
谷歌命令
/
submit
)。这允许您在一个应用程序中公开多种功能
command
.希望这能回答问题!