Maison >développement back-end >Tutoriel Python >Comment puis-je faire défiler une page Web à l'aide de Selenium Webdriver en Python ?

Comment puis-je faire défiler une page Web à l'aide de Selenium Webdriver en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 11:20:12365parcourir

How Can I Scroll a Web Page Using Selenium Webdriver in Python?

Faire défiler une page Web à l'aide de Selenium Webdriver en Python

Dans le domaine de l'automatisation Web, Selenium Webdriver se présente comme un outil de confiance pour naviguer et interagir avec les pages Web. L’un des défis courants rencontrés lors de l’automatisation des tâches consiste à faire défiler une page Web pour accéder à du contenu supplémentaire. Cet article examine les différentes approches de défilement vers le bas à l'aide de Selenium Webdriver en Python.

Approche 1 : spécification d'une hauteur spécifique

Pour faire défiler jusqu'à une hauteur spécifique sur la page, utilisez la syntaxe suivante :

driver.execute_script("window.scrollTo(0, Y)")

où Y représente la hauteur souhaitée en pixels. Par exemple, pour faire défiler jusqu'à une hauteur de 1 080 pixels (la hauteur d'un moniteur Full HD), vous utiliseriez :

driver.execute_script("window.scrollTo(0, 1080)")

Approche 2 : Faire défiler vers le bas de la page

Pour faites défiler jusqu'en bas de la page, exécutez le code suivant :

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

Cette commande garantit que vous atteignez la fin de la page, quel que soit son contenu réel hauteur.

Approche 3 : Défilement infini

Pour les pages Web qui utilisent le défilement infini (par exemple, les flux de médias sociaux), vous devez mettre en œuvre un mécanisme de défilement personnalisé :

SCROLL_PAUSE_TIME = 0.5

# Get the initial scroll height
last_height = driver.execute_script("return document.body.scrollHeight")

while True:
    # Scroll down to the bottom
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

    # Allow time for the page to load
    time.sleep(SCROLL_PAUSE_TIME)

    # Calculate the new scroll height and compare it with the previous one
    new_height = driver.execute_script("return document.body.scrollHeight")
    if new_height == last_height:
        break
    last_height = new_height

Méthode supplémentaire : sélection d'un élément et défilement

Si vous préférez, vous pouvez sélectionner un élément sur la page et faire défiler jusqu'à directement :

label = driver.find_element_by_css_selector("body")
label.send_keys(Keys.PAGE_DOWN)

En sélectionnant un élément et en envoyant la commande Keys.PAGE_DOWN, la page défilera d'une 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