Saltar al contenido

Cómo leer el texto del cuadro de alerta usando Python + Selenium

Solución:

Para leer el texto del Cuadro de alerta, validar y cerrar el Alerta tienes que cambiar a la Alerta primero y siga los pasos mencionados a continuación:

alert = chrome.switch_to_alert()
alert_text = alert.text
# validate the alert text
alert.accept()

Sin embargo, ahora parece switch_to_alert() es obsoleto. Entonces, según la implementación actual, debe usar:

  • switch_to.alert() como sigue:

    alert = driver.switch_to.alert()
    alert_text = alert.text
    # validate the alert text
    alert.accept()
    
  • De acuerdo con las mejores prácticas, siempre debe inducir WebDriverWait para alert_is_present () antes de cambiar a un Alerta como sigue:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    # other lines of code
    alert = WebDriverWait(driver, 5).until(EC.alert_is_present)
    alert_text = alert.text
    # validate the alert text
    alert.accept()
    

Puede encontrar una discusión relevante en ¿Por qué cambiar a alerta a través del selenio no es estable?

En primer lugar, debe cambiar a la ventana de alerta:

alert = driver.switch_to_alert()

Luego obtenga el texto en la ventana de alerta usando alert.text. Y verifique que su texto sea correcto.

Luego realice dicha acción (cierre la ventana de alerta):

alert.accept()

También tengo situaciones similares a esta en mi marco, y así es como las resolví.

if (_driver.FindElement(By.XPath("//*[text()[contains(.,'No Sales Found')]")).Enabled)
{
     //Do Something
}

Ponga esto después de la funcionalidad que puede provocar el error. Además, este ejemplo usa C # y _driver como controlador, que puede ser diferente de lo que está usando.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *