es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El método selectByVisibleText con un texto de opción incorrecto no genera un error utilizando Selenium y Java.

Cuando intento encontrar un elemento utilizando el método selectByVisibleText() de un desplegable, el programa se ejecuta incluso si no hay ningún texto de ese tipo en el desplegable. Sin embargo, después de la ejecución del programa, muestra un error.

Elemento HTML:

<select id="portfolioid">
    <option value="2021218" selected="selected">Ishu8</option>
    <option value="2021219">Ishu7</option>
    <option value="2021220">Ishu6</option>
    <option value="2021221">Ishu</option>
</select>

Mi código:

WebElement wb = driver.findElement(By.id("portfolioid"));
Select dropdown = new Select(wb);
dropdown.selectByVisibleText("Ishu1");

Esto selecciona el primer elemento (es decir, “Ishu8”) en el desplegable y ejecuta el resto del programa, aunque debería detener la ejecución después de un error. El resto de los escenarios funcionan correctamente.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Cuando estás utilizando el método selectByVisibleText() para encontrar un elemento de un menú desplegable, selecciona el elemento con un texto visible que coincida con el argumento pasado en el método. Sin embargo, si el argumento no coincide con ningún texto visible en el menú desplegable, seleccionará el primer elemento por defecto y continuará con el resto del programa.

    Para manejar este escenario, puedes utilizar un bloque try-catch alrededor del método selectByVisibleText() y manejar la excepción NoSuchElementException que se lanza cuando no hay texto visible que coincida con el argumento. Puedes agregar un mensaje de error adecuado en el bloque catch para informar al usuario que el texto seleccionado no está presente en el menú desplegable.

    Código actualizado:

    WebElement wb = driver.findElement(By.id("portfolioid"));
    Select dropdown = new Select(wb);
    try {
        dropdown.selectByVisibleText("Ishu1");
    } catch (NoSuchElementException e) {
        System.out.println("El elemento con el texto Ishu1 no está presente en el menú desplegable");
    }
    

Comments are closed.