python selenium selenium-webdriver webdriver pageloadstrategy

No espere a que se cargue una página con Selenium en Python



selenium-webdriver webdriver (2)

Para Chromedriver funciona igual que en la respuesta de @ DebanjanB, sin embargo, la estrategia de carga de página ''ansiosa'' aún no es compatible

Entonces, para chromedriver obtienes:

from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities caps = DesiredCapabilities().CHROME # caps["pageLoadStrategy"] = "normal" # Waits for full page load caps["pageLoadStrategy"] = "none" # Do not wait for full page load driver = webdriver.Chrome(desired_capabilities=caps, executable_path="path/to/chromedriver.exe")

Tenga en cuenta que cuando usa la estrategia ''ninguno'', lo más probable es que tenga que implementar su propio método de espera para verificar si el elemento que necesita está cargado.

from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as ec WebDriverWait(driver, timeout=10).until( ec.visibility_of_element_located((By.ID, "your_element_id")) )

¡Ahora puede comenzar a interactuar con su elemento antes de que la página esté completamente cargada!

¿Cómo hago que el selenio haga clic en los elementos y raspe los datos antes de que la página se haya cargado completamente? Mi conexión a Internet es bastante terrible, por lo que a veces me lleva una eternidad cargar la página por completo, ¿hay alguna forma de evitar esto?


ChromeDriver 77.0 (que admite la versión 77 de Chrome) ahora admite eager como pageLoadStrategy .

Problema resuelto 1902: estrategia de carga de página ansiosa de soporte [Pri-2]

A medida que cuestione las menciones de click on elements and scrape data before the page has fully loaded en este caso podemos tomar la ayuda de un atributo pageLoadStrategy . Cuando Selenium carga una página / url de manera predeterminada, sigue una configuración predeterminada con pageLoadStrategy establecido en normal . Selenium puede comenzar a ejecutar la siguiente línea de código desde diferentes Document readiness state . Actualmente, Selenium admite 3 Document readiness state diferentes que podemos configurar a través de pageLoadStrategy siguiente manera:

  1. none (indefinido)
  2. eager (la página se vuelve interactiva)
  3. normal (carga de página completa)

Aquí está el bloque de código para configurar el pageLoadStrategy :

from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities binary = r''C:/Program Files/Mozilla Firefox/firefox.exe'' caps = DesiredCapabilities().FIREFOX # caps["pageLoadStrategy"] = "normal" # complete caps["pageLoadStrategy"] = "eager" # interactive # caps["pageLoadStrategy"] = "none" # undefined driver = webdriver.Firefox(capabilities=caps, firefox_binary=binary, executable_path="C://Utility//BrowserDrivers//geckodriver.exe") driver.get("https://google.com")