Le rapporteur e2e Tests de Connexion de Redirection
Actuellement ont une fin partielle-à la fin de l'essai que l'entrée d'un nom d'utilisateur/mot de passe et clique sur "se connecter".
Il le fait avec succès, mais conclut à un "merci vous êtes bien connecté au" de la page, au lieu d'être redirigé vers le "portail de compte" ou "tableau de bord", la façon dont il le ferait si je me suis connecté via le navigateur.\
Nouveau à ce projet, mais nous sommes en utilisant OAuth.
Question principale: est-ce son comme une nécessité pour http moqueur?
Plus de détails:
spec.js
describe('login page', function() {
browser.driver.get('http://url.path/login');
it('should render login page', function() {
//Checking the current url
var currentUrl = browser.driver.getCurrentUrl();
expect(currentUrl).toMatch('/login');
});
it('should sign in', function() {
//Find page elements
var userNameField = browser.driver.findElement(By.id('username'));
var userPassField = browser.driver.findElement(By.id('password'));
var userLoginBtn = browser.driver.findElement(By.id('loginbtn'));
//Fill input fields
userNameField.sendKeys('[email protected]');
userPassField.sendKeys('1234');
//Ensure fields contain what we've entered
expect(userNameField.getAttribute('value')).toEqual('[email protected]');
expect(userPassField.getAttribute('value')).toEqual('1234');
//Click to sign in - waiting for Angular as it is manually bootstrapped.
userLoginBtn.click().then(function() {
browser.waitForAngular();
expect(browser.driver.getCurrentUrl()).toMatch('/success');
}, 10000);
});
});
Si j'ai rapidement cliquez sur la fenêtre de test, je peux voir qu'il atteint avec succès le "succès" de la page mais il ne redirige pas vers le tableau de bord (il redirige lorsque, manuellement, vous connecter, via le navigateur). Comment puis-je continuer ce test, pour rester connecté et accéder au tableau de bord comme le ferait un utilisateur?
//Nouvelles du projet, angulaire et et du rapporteur.
EDIT - Résumer un peu:
- Je voudrais rapporteur pour commencer les tests sur les /login page
- Rapporteur doit trouver et de remplir les champs username et password, puis cliquez sur Login
- Rapporteur, la connexion a réussi, à voir un /thankyou page, puis immédiatement rediriger l'utilisateur /tableau de bord page
- J'ai peut-être raté une étape, n'avons-nous besoin de rediriger manuellement en le Rapporteur tests?
(Lorsqu'un utilisateur manuellement les journaux à travers le navigateur, ils ne voient pas le /thankyou page - c'est rapide à faire rediriger vers /tableau de bord . Le rapporteur n'a pas atteint la page de tableau de bord.
OriginalL'auteur bruh | 2015-11-30
Vous devez vous connecter pour publier un commentaire.
Ton post manque d'informations, mais je vais essayer de faire une hypothèse:
Je suppose que vos "merci vous êtes bien connecté au" page de redirection javascript après un délai d'attente.
Donc, après vous cliquez sur "Connexion", le navigateur charge "merci vous êtes bien connecté à la page", et depuis le deuxième paramètre à
.then()
ne fait rien,browser.waitForAngular()
échoue car il n'est pas angulaire sur cette page.Vous devriez essayer d'utiliser quelque chose comme
browser.driver.wait()
avec un délai raisonnable pour détecter le changement d'url (décrite ici: https://github.com/angular/protractor/issues/610) et de déclencherbrowser.waitForAngular()
après le navigateur arriver à/success
page.OriginalL'auteur Eugene
Avez-vous essayé d'utiliser un explicite attendre?
Votre code devrait ressembler à cela:
OriginalL'auteur flaviomeira10