Maison >développement back-end >Tutoriel Python >Comment puis-je détecter efficacement lorsqu'une page Web (avec défilement infini) est entièrement chargée à l'aide de Selenium WebDriver en Python ?
Comment attendre le chargement d'une page à l'aide de Selenium WebDriver pour Python
Lors de la récupération de données de pages Web implémentées avec un défilement infini, il est crucial de détecter efficacement quand la page a entièrement chargé un nouveau contenu. Cet article explore une approche plus efficace en termes de temps par rapport à l'attente d'un intervalle de temps fixe après chaque défilement.
Mécanisme de chargement de page par défaut
Par défaut, le .get de Selenium WebDriver () attend que la page se charge complètement. Cependant, cela ne tient pas compte du chargement dans les frames ou via des requêtes AJAX.
Utilisation de WebDriverWait for Specific Elements
Pour attendre qu'un élément spécifique soit disponible sur le page, utilisez WebDriverWait() avec Expected_conditions. Par exemple :
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By delay = 3 # seconds driver = webdriver.Firefox() driver.get("url") try: myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, 'id-of-element'))) print("Page is ready!") except TimeoutException: print("Loading took too much time!")
Considérations
Notez que WebDriverWait attend uniquement que l'élément ou la condition spécifié devienne vrai. Si vous attendez des éléments ou des conditions supplémentaires, vous devrez peut-être utiliser un code personnalisé pour détecter la fin du chargement de la page.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!