Entradas

Mostrando entradas de mayo, 2023

Sintaxis básica usando Cucumber/gherkin sin morir en el intento

Buenas lectores. Muchas veces cuando comenzamos a redactar las historias de usuario en lenguaje Gherkin y queremos automatizarlas, encontramos que algunas veces es frustrante porque salen errores que no entendemos al momento de ejecutar nuestro escenario. Es por eso que la idea de este post es darte el concepto de que debes revisar cuando te salen errores "extraños" que no te dejan ejecutar la suite de pruebas. 1 - Escenarios sin información de entrada: veamos el ejemplo Feature: Guess the word   # The first example has two steps   Scenario: Maker starts a game     When the Maker starts a game     Then the Maker waits for a Breaker to join Del anterior ejemplo lo más importante es: -> Es un escenario que realiza acciones y no necesita enviar información, por lo tanto podemos ver la palabra reservada Scenario, esta se usa para cuando el escenario no necesita repetirse con diferente data. ->Las palabras reservadas Feature y Scenario proceden con : pa...

Extraer el texto de un control oculto (hidden)

Buenas lectores. En ocasiones necesitamos traer el texto de un elemento que se encuentra oculto al usuario, esto por facilidad en algunas operaciones o simplemente el desarrollador almacena algun identificador o valor que vamos a necesitar mas adelante. En estos escenarios que son "atipicos" tambien necesitamos soluciones de las mismas características puesto que al ser un elemento invisible no podemos interactuar con el con un simple getText. Para esto la solución es sencilla, recurrimos a nuestra siempre confiable (la vieja confiable) javascript. Vamos a traernos el atributo del texto: Si usamos screenplay: WebElementFacade element = target.resolveFor(actor); String value = BrowseTheWeb.as(actor).evaluateJavascript("return arguments[0].innerText;", element).toString().trim(); Si estamos usando POM  @FindBy(id="color") WebElementFacade colorDropdown; String value = colorDropdown.getAttribute("innerText") Si estamos usando Selenium directo String ...