Selenium Python: ¿Cómo esperar a que una página se cargue después de un clic?

Quiero capturar la fuente de la página después de hacer un clic. Y luego vuelve usando la función browser.back (). Pero Selenium no permite que la página se cargue por completo después del clic y el contenido generado por JavaScript no se incluye en la fuente de la página.

element[i].click() #Need to wait here until the content is fully generated by JS. #And then grab the page source. scoreCardHTML = browser.page_source browser.back() 

Como mencionó Alan, puedes esperar a que se cargue algún elemento. A continuación se muestra un código de ejemplo

 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC browser = webdriver.Firefox() element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "element_id"))) 

Puede hacerlo usando este método de un ciclo de prueba y espera, un método fácil de implementar.

 from selenium import webdriver browser = webdriver.Firefox() browser.get("url") Button='' while not Button: try: Button=browser.find_element_by_name('NAME OF ELEMENT') Button.click() except:continue