La función driver.get(URL) espera a que la página termine de cargarse antes de volver a la ejecución.

En Java hay un método driver.navigate().to(URL), que no espera a que se cargue la página, sin embargo, no puedo encontrar dicho método en Python.

Para Firefox, podría ejecutar profile.set_preference("webdriver.load.strategy", "unstable"), sin embargo, Chrome no tiene esa preferencia.

También hay driver.set_page_load_timeout(0.2) con TimeoutException manejo Sin embargo, cuando se maneja la excepción, el controlador de Chrome deja de cargar la página.

EDITAR : reformuló un poco la pregunta y agregó una solución que no funciona.

0
brikas 21 oct. 2020 a las 23:12

1 respuesta

La mejor respuesta
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities().CHROME
caps["pageLoadStrategy"] = "none"   # Do not wait for full page load
driver = webdriver.Chrome(desired_capabilities=caps, executable_path="path/to/chromedriver.exe")
driver.get('some url')
#some code to run straight away

Este código no esperará a que la página se cargue por completo antes de pasar a la siguiente línea. Cuando utilice la estrategia de carga de página 'Ninguno', probablemente tendrá que hacer su propia espera personalizada para verificar si los elementos o el elemento que necesita se terminaron de cargar.

Usted podría utilizar:

import time
time.sleep()

O si solo desea esperar el tiempo requerido antes de que un elemento se haya cargado en:

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"))
)

Esto debería ayudarlo con cualquier cosa que esté tratando de hacer. Como no proporcionó ningún código, solo puedo asumir que esto funcionará ya que no pude dar una respuesta específica para una página web específica.

1
Faizan Shah 22 oct. 2020 a las 12:03