with tutorial the framework espaƱol applications java testing selenium

java - tutorial - the django project



Selenio: encuentra el elemento "al lado" de otro elemento (2)

Estoy agregando pruebas web a mi proyecto usando Selenium. Ya tengo un montón de pruebas que verifican un elemento específico utilizando:

final WebElement dateElement = web.findElement(By.id(elementId));

Y esto funciona bien Ahora tengo otro requisito. Esto está en mi página generada:

<input type="text" id="dateElement" name="dateElement" value="bunch of monkeys" tabindex="101" placeholder="yyyy-mm-dd"> <span class="error">dateElement is an invalid date</span>

¿Cómo puedo obtener el mensaje de error? Me gustaría algo que me permita solicitar el elemento span con el "error" de clase que está justo después del elemento dateElement.

(Este mensaje de error fue generado por Spring MVC, por lo que no es fácil cambiarlo directamente. Posible, supongo, pero preferiría no hacerlo).

Cualquier idea alternativa es bienvenida.


OK, ya encontré una solución usando Xpath y following-sibling, no fue muy complicado.

final WebElement errorElement = web.findElement(By.xpath("//*[@id=''" + elementId + "'']/following-sibling::span[@class=''error'']"));

Esto me da lo que quería, y arroja una NoSuchElementException cuando no está aquí, que es exactamente lo que quiero.


elementSelector = "input + span[class=''error'']"; final WebElement dateElement = web.findElement(By.cssSelector(elementSelector));