Rapporteur, Cliquez sur le Bouton et ouvrir la page dans un nouvel onglet
Je suis assez nouveau à l'Rapporteur.
Je suis en train d'automatiser un scénario où je clique sur un bouton et sa ouvre une page dans un nouvel onglet et puis nous avons besoin pour remplir le formulaire dans la nouvelle page et de le soumettre.
Question: quand je clique sur le bouton pour ouvrir une nouvelle page. Mes essais ne pas attendre pour la nouvelle page à charger et à dire d'essai terminée et le message de réussite.
Je suis en utilisant de simples événement click du bouton de cliquer sur le bouton.
élément(par.id("newPlan")).cliquez sur()
Suis-je raté quelque chose ? Dois-je faire quelque chose pour que mes tests d'attente pour une nouvelle page se charge et puis je peux effectuer certaines fonctions ?
OriginalL'auteur Sumit | 2015-02-16
Vous devez vous connecter pour publier un commentaire.
Vous devez attendre jusqu'à ce que l'ouverture de la page en utilisant les rappels. Essayez quelque chose dans ce sens:
Essayez l'impression de poignées de param pour voir si la fenêtre que vous cherchez est là.
Faites-vous quelque chose sur le pondu page? Assurez-vous que la page est aussi un angular js de la page.
Juste au cas où si c'est un non-angulaire de la page, un problème similaire est décrit ici: stackoverflow.com/questions/28511013/....
Ne fonctionne pas si ça prend du temps pour charger un nouvel onglet! Les poignées[1] n'est pas défini alors.
OriginalL'auteur Michal Lison
C'est la solution qui a fonctionné pour moi, mais j'ai ajouté un navigateur.sleep(500), pour éviter l'erreur mentionnée ci-dessus (UnknownError: erreur inconnue: "nom" doit être une chaîne non vide).
Le problème est que la nouvelle poignée n'était pas encore disponible.
Juste lui donner un moment après le clic pour ouvrir un nouvel onglet et de gestionnaire disponible.
Oui, c'est l'ajout d'un laid sommeil, mais c'est court...
OriginalL'auteur Omri Bendety
"S'assurer que la nouvelle page est également une AngularJS page" ne fait pas trop de sens pour moi, si je suis honnête 🙂
Le test doit être valable quel que soit le type de la page/app le navigateur redirige vers, n'est-ce pas?
Si vous êtes confrontés à des problèmes avec l'accès à de nouvelles onglet URL sur la non-angulaire de la page, essayez de
au lieu de
OriginalL'auteur Tomasz Libich
Il y a un autre moyen plus pratique. Il suffit de l'utilisation des fonctions sur le
browser
objet.Vrai. Depuis
waitForAngular
n'attend pas toujours comme prévu, nous avons ajouter unsleep
assurez-vous qu'il suffit d'attendre. Bien sûr, il est trop arbitraire et peut conduire à des retards inutiles. Mais si on vient juste de commencer le test et de le laisser fonctionner (sans doute après les heures de travail), le compromis pourrait être acceptable.OriginalL'auteur Blaise
Ici est mise en œuvre sans l'aide du navigateur.sleep() de la méthode.
Fonction
waitForNewWindow()
est créé à l'aide de async et underscorejs.Où
async.until()
méthode est utilisée pour appelergetAllWindowHandles()
de façon synchrone.OriginalL'auteur Andrei Surzhan