Maison >développement back-end >Tutoriel Python >Comment accélérer les tests Selenium lorsque les scripts lents vous retiennent ?

Comment accélérer les tests Selenium lorsque les scripts lents vous retiennent ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-15 16:02:03529parcourir

How to Speed Up Selenium Tests When Slow Scripts Are Holding You Back?

Selenium en attente de scripts lents : stratégies et solutions

Le comportement par défaut de Selenium est d'attendre qu'une page soit complètement chargée, ce qui peut entraîner des retards lorsque vous rencontrez des scripts lents. Ce problème devient encore plus évident lorsqu'il s'agit de pages qui tentent perpétuellement de charger des scripts morts ou qui ne répondent pas. Pour surmonter ce défi, nous pouvons modifier la stratégie de chargement des pages de Selenium.

Configuration de pageLoadStrategy

Selenium propose trois options pour pageLoadStrategy :

  • normal : attend que la page entière se charge (par défaut).
  • impatient : attend que la page soit interactive (les éléments sont visibles et peuvent répondre aux événements).
  • aucun : fait n'attendez pas du tout le chargement d'une page.

En configurant pageLoadStrategy, nous pouvons contrôler la durée Selenium attend que les éléments de la page soient disponibles.

Exemple : configuration de pageLoadStrategy pour Firefox

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities().FIREFOX
caps["pageLoadStrategy"] = "eager"  # Interactive
driver = webdriver.Firefox(desired_capabilities=caps, executable_path=r'C:\path\to\geckodriver.exe')
driver.get("http://google.com")

Exemple : configuration de pageLoadStrategy pour Chrome

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities().CHROME
caps["pageLoadStrategy"] = "none"  # Do not wait
driver = webdriver.Chrome(desired_capabilities=caps, executable_path=r'C:\path\to\chromedriver.exe')
driver.get("http://google.com")

Remarque : La valeur pageLoadStrategy « impatiente » est actuellement en cours de développement pour ChromeDriver. Reportez-vous à la documentation pour les mises à jour sur son statut.

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