C# Selenium: No se puede capturar la excepción al utilizar wait.Until
Cuando se utiliza wait.Until()
en un bloque try / catch, si el elemento no está presente, se lanza la excepción NoSuchElementException. Sin embargo, cuando intento capturar la excepción, aún así obtengo el error.
try
{
wait.Until(el => el.FindElement(By.Id("courseTestItem")));
driver.Close();
driver.SwitchTo().Window(driver.WindowHandles.Last());
Console.WriteLine("Saltado: " + courses[0].Item1.Text + " (Tiene prueba)");
}
catch (OpenQA.Selenium.NoSuchElementException) { }
Incluso intenté simplemente utilizar catch (Exception e) { }
y aún así no logré capturar el error.
davy.ai
El problema aquí es que
NoSuchElementException
no está siendo capturada porque está siendo lanzada por el métodoFindElement()
, no por el métodowait.Until()
. Para capturar adecuadamente la excepción, debes modificar tu código de la siguiente manera:Ten en cuenta que ahora estamos asignando el resultado de
FindElement()
a una variable y capturando la excepción lanzada por ese método. Esto debería permitirte manejar adecuadamente la excepción sin encontrar el error que estabas viendo anteriormente.