Attendez que la page de redirection Selenium WebDriver (Python)
J'ai une page qui charge le contenu dynamique avec ajax et redirige ensuite après un certain laps de temps (pas fixe). Comment puis-je forcer le Selenium Webdriver à attendre que la page de redirection puis passez à une autre lien immédiatement après?
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome();
driver.get("http://www.website.com/wait.php")
Si vous connaissez l'url attendu vous pouvez utiliser
Vous pourriez attendre l'URL de changer avec un garçon.
driver.current_url
dans un while
boucle.Vous pourriez attendre l'URL de changer avec un garçon.
OriginalL'auteur 7O07Y7 | 2016-10-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer un Situation attendue à attendre pour l'URL de changer:
La Condition Attendue est fondamentalement un appelable - vous pouvez l'envelopper dans une classe l'écrasement de la
__call__()
méthode magique construit-dans les conditions de mise en œuvre.dans cette situation attendue nous sommes juste en attente pour l'url en cours de changement. Si vous souhaitez changer pour attendre une url spécifique pour être à jour, vous pouvez utiliser
lambda driver: driver.current_url == "specific url"
..OriginalL'auteur alecxe
C'est une bonne pratique d ' "attendre" uniques (nouvelle page) élément d'apparaître.
Vous pouvez utiliser le module expected_conditions.
Par exemple, vous pourriez attendre d'utilisateur logo sur la signature:
OriginalL'auteur Max V
Il y a plusieurs ExpectedConditions qui peuvent être utilisés avec ExplicitWait pour gérer redirection de page:
Attendre de la nouvelle page de titre avec
title_is(title_name)
:Attendre URL en cours à être changé à n'importe quel autre URL avec
url_changes(exact_url)
:Attendre pour vous rendre à l'URL exacte avec
url_to_be(exact_url)
:Aussi
url_contains(partial_url)
pourrait être utilisée pour attendre URL qui contient la sous-chaîne spécifiée ouurl_matches(pattern)
- attendre URL égalé par le passé regex motif outitle_contains(substring)
à attendre pour le nouveau titre qui contient la sous-chaîne spécifiéeOriginalL'auteur Andersson