Si encuentras algún error con tu código o trabajo, recuerda probar siempre en un ambiente de testing antes subir el código al trabajo final.
Solución:
Así es como lo implementé eventualmente. Funciona bien para mí:
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 5)
desired_url = "https://yourpageaddress"
def wait_for_correct_current_url(desired_url):
wait.until(
lambda driver: driver.current_url == desired_url)
Estaba pensando en hacer eso de alguna manera con WebDriverWait
Exactamente. En primer lugar, vea si las Condiciones esperadas incorporadas pueden resolver eso:
title_is
title_contains
Ejemplo de uso:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
wait.until(EC.title_is("title"))
wait.until(EC.title_contains("part of title"))
De lo contrario, siempre puede crear una Condición esperada personalizada para esperar a que la URL coincida con la expresión regular deseada.
Para saber realmente que la URL ha cambiado, debe conocer la anterior. Usando WebDriverWait
la implementación en Java sería algo como:
wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.not(ExpectedConditions.urlToBe(oldUrl)));
Sé que la pregunta es para Python, pero probablemente sea fácil de traducir.
Recuerda algo, que te permitimos añadir una puntuación verdadera .