Comment attendre d'une page de redirection en Sélénium?
Je suis en train d'effectuer une tâche relativement simple: attendre jusqu'à ce qu'une page de redirection est terminée. Juste vu un autre répondu à la question sur le sujet, où un conseil c'est d'attendre un texte particulier sur la dernière page (SI j'ai bien compris). Si oui, comment l'idée d'attendre jusqu'à window.location
sera changé? Est-il mieux? Le pire? Moins il y a lieu? Une autre idée? juste curieux, si nécessaire, pouvez marquer cette question comme un wiki de la communauté.
Merci!
OriginalL'auteur BreakPhreak | 2011-06-23
Vous devez vous connecter pour publier un commentaire.
Oui, j'ai rencontré ce problème à de nombreuses reprises lors de l'utilisation de Sélénium. Il y a 2 façons j'ai travaillé autour de ce problème. Tout d'abord, vous pouvez réellement changer l'implicite temps d'attente. Pour exemple ce morceau de code:
Ce code va lever une exception si, au point qu'il est appelé il n'y a pas d'éléments qui pourraient être trouvés correspondent à la "lala" de la classe. Vous pouvez modifier l'implicite temps d'attente avec:
Cela rend le pilote sondage pour 5 secondes plutôt que de rejeter tout de suite. Si l'élément ne peut pas toujours être situé au bout de 5 secondes, puis l'action échoue. Bien sûr, vous pouvez changer ce paramètre. J'ai trouvé que cette méthode fonctionne ok la plupart du temps. La plupart du temps vous n'avez pas de soins sur l'ensemble du chargement de la page, juste une certaine partie.
J'ai aussi écrit une autre fonction qui est GetElementByClassAndText qui fera la même implicite d'attendre sur un élément, sauf qu'il vérifie également le contenant du texte ainsi pour autoriser un meilleur détaillant de ce que vous voulez:
Et la Fonction correspondante qu'il utilise:
Je me rends compte que vous êtes en utilisant le Sélénium en Ruby mais j'espère que certains de mon code (au moins conceptuellement) est transférable et utile pour vous.
OriginalL'auteur Mike Kwan
La surveillance de la valeur, retourné
driver.get_location
fait le travail parfaitement pour moi.Apparemment, de ce que j'ai compris dans mes 5 minutes scruter le code a été que
window.location.href
valeur est surveillée sous le capot.Pouvez-vous préciser qu'il
OriginalL'auteur BreakPhreak
Vous pouvez utiliser cette fonction, il sera re-chargement de la page en cours ( après avoir été redirigé):
le pilote.getCurrentUrl();
OriginalL'auteur Sang