J'écris des tests dans Protractor pour une application Angular. Je veux remplir un formulaire de connexion et le soumettre.
Comment puis-je faire ceci? Je suis arrivé jusqu'ici, mais je ne sais pas comment définir la valeur des champs e-mail et mot de passe.
describe('The dashboard', function() {
ptor = protractor.getInstance();
beforeEach(function() {
ptor.get('#/dashboard');
var email = ptor.findElement(protractor.By.model('email'));
var password = ptor.findElement(protractor.By.model('password'));
var submit = ptor.findElement(protractor.By.tagName('button'));
// Fill out the form?
submit.click();
});
it('has a heading', function() {
heading = ptor.findElement(protractor.By.tagName('h1'));
expect(heading.getText()).toEqual('My Dashboard');
});
});
Juste pour le bénéfice de tous ceux qui l'ont trouvé via Google, la réponse est:
email.sendKeys('[email protected]');
password.sendKeys('mypassword');
vous pouvez utiliser
email.clear().sendKeys('[email protected]');
password.clear().sendKeys('mypassword');
En plus de shruti et Richard ,
Pour vous assurer que l'entrée est vide ou effacée, utilisez la méthode clear qui renvoie une promesse . Résolvez la promesse avec la méthode sendKeys sur votre entrée. Cela est utile si vous avez pré-rempli votre entrée avec des valeurs par défaut.
Async/Attendre:
async fillInEmail() {
await email.clear();
email.sendKeys('[email protected]');
}
async fillInPassword() {
await password.clear();
password.sendKeys('mypassword');
}
ES6:
email.clear().then(() => {
email.sendKeys('[email protected]');
});
password.clear().then(() => {
password.sendKeys('mypassword');
});
Avant ES6:
email.clear().then(function() {
email.sendKeys('[email protected]');
});
password.clear().then(function() {
password.sendKeys('mypassword');
});