Indagamos en todo internet para así tener para ti la solución para tu inquietud, en caso de dudas puedes dejar la pregunta y contestamos porque estamos para ayudarte.
Solución:
Puede verificar las salidas de elementos o no usar
bool isElementDisplayed = driver.findElement(By.xpath("element")).isDisplayed()
Recordar, findElement
lanza una excepción si no encuentra el elemento, por lo que debe manejarlo adecuadamente.
En una de mis aplicaciones manejé la excepción al verificar el elemento en una función separada,
private bool IsElementPresent(By by)
try
driver.FindElement(by);
return true;
catch (NoSuchElementException)
return false;
función de llamada,
if (IsElementPresent(By.Id("element name")))
//do if exists
else
//do if does not exists
Puede usar FindElements con una “s” para determinar si existe, ya que FindElement da como resultado una excepción. Si FindElements no devuelve un elemento, devuelve una lista vacía.
List elementList = new List();
elementList.AddRange(driver.FindElements(By.XPath("//input[@att='something']")));
if(elementList.Count > 0)
//If the count is greater than 0 your element exists.
elementList[0].Click();
Así que recientemente descubrí otra forma, que es MUCHO más rápida. Si su elemento tiene una identificación única o alguna attribute que no existe en ningún otro lugar de la página, puede comprobar el origen de la página.
driver.PageSource.Contains("UniqueID");
Comprueba la página para ver si existe la identificación u otro texto único. Esto sucede casi instantáneamente, a diferencia de usar una instrucción Try/Catch, que demora ~20 segundos. FindElements también tarda mucho en ejecutarse.
Aquí tienes las reseñas y valoraciones
Agradecemos que desees añadir valor a nuestra información añadiendo tu veteranía en las interpretaciones.