Ignorer l'emplacement de la fonction selectUser
. J'essaie toujours de jouer avec ça. Comment puis-je utiliser des fonctions à l'intérieur de l'objet page commands
? Avant cette fonction a été répétée 5 fois à l'intérieur de chaque fonction de commande, mais pour la propreté, cela devait évidemment être changé, je ne peux pas comprendre comment.Utilisation des fonctions à l'intérieur des commandes de page-objet dans Nightwatch
extrait objet Page:
var selectUser = function(userName, password) {
return this.waitForElementVisible('@usernameField')
.setValue('@usernameField', userName)
.setValue('@passwordField', password)
.click('@signOnButton')
.waitForElementVisible('@eventTaskManager');
};
module.exports = {
elements: {
usernameField: '#UserName',
passwordField: '#Password',
signOnButton: 'input[value="Sign On"]',
cancelButton: 'a[href$="/cancel"]',
errorMessage: '.icon-warning',
eventTaskManager: '.concierge'
},
commands: [{
signInAsUniregisteredUser: function() {
selectUser(unregisteredUserName, unregisteredUserPass);
},
signInAsRegisteredUser: function() {
selectUser(registeredUserName, prodRegisteredPass);
},
signInAsUnregisteredUser_Regression: function() {
selectUser(unregisteredUserName, unregisteredUserPass);
},
signInAsRegisteredUser_Regression: function() {
selectUser(registeredUserName, prodRegisteredPass);
},
signInAsRegisteredUser_Production: function() {
selectUser(prodRegisteredUser, prodRegisteredPass);
}
}]
};
Excellent merci. Mais en général, comment utiliseriez-vous les fonctions à l'intérieur des commandes? Hypothétiquement, permet de garder les valeurs codées en dur. Convertir un script de protractor en nightwatch et il y a plus de fonctions que juste l'exemple de connexion. – inShaneity