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 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 ?

DDD
DDDoriginal
2024-12-16 20:28:15138parcourir

How Can I Efficiently Detect When a Web Page (with Infinite Scrolling) Has Fully Loaded Using Selenium WebDriver in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn