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.