diff --git a/build.gradle b/build.gradle index 40621cb..1dbc189 100644 --- a/build.gradle +++ b/build.gradle @@ -34,16 +34,11 @@ ext { } dependencies { - implementation "net.serenity-bdd:serenity-screenplay-webdriver:${serenityCoreVersion}", - "ch.qos.logback:logback-classic:${logbackVersion}" - - testImplementation "net.serenity-bdd:serenity-core:${serenityCoreVersion}", - "net.serenity-bdd:serenity-junit:${serenityCoreVersion}", - "net.serenity-bdd:serenity-screenplay:${serenityCoreVersion}", - "net.serenity-bdd:serenity-ensure:${serenityCoreVersion}", - "net.serenity-bdd:serenity-cucumber:${serenityCoreVersion}", - "junit:junit:${junitVersion}", - "org.assertj:assertj-core:${assertJVersion}" + implementation group: 'net.serenity-bdd', name: 'serenity-core', version: '2.0.84' + implementation group: 'net.serenity-bdd', name: 'serenity-junit', version: '2.0.84' + implementation group: 'net.serenity-bdd', name: 'serenity-cucumber', version: '1.9.39' + implementation group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' + implementation group: 'net.serenity-bdd', name: 'serenity-screenplay', version: '2.0.84' } gradle.startParameter.continueOnFailure = true diff --git a/chromedriver.exe b/chromedriver.exe new file mode 100644 index 0000000..015e261 Binary files /dev/null and b/chromedriver.exe differ diff --git a/serenity.properties b/serenity.properties index c40d413..6460e27 100755 --- a/serenity.properties +++ b/serenity.properties @@ -1 +1,2 @@ -chrome.switches=--no-first-run,--start-maximized,--homepage=about:blank +webdriver.driver= chrome +chrome.switches=--start-maximized--incognito diff --git a/src/main/java/net/onlinenotepad/questions/QEscenario1.java b/src/main/java/net/onlinenotepad/questions/QEscenario1.java new file mode 100644 index 0000000..d246ca1 --- /dev/null +++ b/src/main/java/net/onlinenotepad/questions/QEscenario1.java @@ -0,0 +1,15 @@ +package net.onlinenotepad.questions; + +import net.onlinenotepad.userinterface.Notepad; +import net.serenitybdd.screenplay.Actor; +import net.serenitybdd.screenplay.Question; +import net.serenitybdd.screenplay.questions.Text; + +public class QEscenario1 implements Question { + + @Override + public String answeredBy(Actor actor) { + return Text.of(Notepad.SEARCH).viewedBy(actor).asString(); + } + public static QEscenario1 in(){return new QEscenario1();} +} diff --git a/src/main/java/net/onlinenotepad/questions/QEscenario2.java b/src/main/java/net/onlinenotepad/questions/QEscenario2.java new file mode 100644 index 0000000..4df8f44 --- /dev/null +++ b/src/main/java/net/onlinenotepad/questions/QEscenario2.java @@ -0,0 +1,4 @@ +package net.onlinenotepad.questions; + +public class QEscenario2 { +} diff --git a/src/main/java/net/onlinenotepad/tasks/Escenario1.java b/src/main/java/net/onlinenotepad/tasks/Escenario1.java new file mode 100644 index 0000000..1fbb33e --- /dev/null +++ b/src/main/java/net/onlinenotepad/tasks/Escenario1.java @@ -0,0 +1,25 @@ +package net.onlinenotepad.tasks; + +import net.onlinenotepad.userinterface.Notepad; +import net.serenitybdd.screenplay.Actor; +import net.serenitybdd.screenplay.Task; +import net.serenitybdd.screenplay.actions.Click; +import net.serenitybdd.screenplay.actions.Enter; + + +public class Escenario1 implements Task { + @Override + public void performAs(T actor) { + actor.attemptsTo( + Click.on(Notepad.BUTTONJOIN), + + Click.on(Notepad.TEXT), + Enter.theValue("PPrueba").into(Notepad.TEXT) + + + ); + + } + + public static Escenario1 on(){return new Escenario1();} +} diff --git a/src/main/java/net/onlinenotepad/tasks/Escenario2.java b/src/main/java/net/onlinenotepad/tasks/Escenario2.java new file mode 100644 index 0000000..38c9df5 --- /dev/null +++ b/src/main/java/net/onlinenotepad/tasks/Escenario2.java @@ -0,0 +1,43 @@ +package net.onlinenotepad.tasks; + +import net.onlinenotepad.userinterface.Notepad; +import net.serenitybdd.screenplay.Actor; +import net.serenitybdd.screenplay.Task; +import net.serenitybdd.screenplay.actions.Click; +import net.serenitybdd.screenplay.actions.Enter; + +public class Escenario2 implements Task { + + @Override + public void performAs(T actor) { + actor.attemptsTo( + Click.on(Notepad.OPTIONLIST), + Click.on(Notepad.LIST), + Enter.theValue("Prueba").into(Notepad.LIST), + Click.on(Notepad.ADDLIST), + Click.on(Notepad.LIST), + Enter.theValue("Hola").into(Notepad.LIST), + Click.on(Notepad.ADDLIST), + Click.on(Notepad.LIST), + Enter.theValue("2Prueba").into(Notepad.LIST), + Click.on(Notepad.ADDLIST), + Click.on(Notepad.LIST), + Enter.theValue("2Hola").into(Notepad.LIST), + Click.on(Notepad.ADDLIST), + Click.on(Notepad.LIST), + Enter.theValue("3Prueba").into(Notepad.LIST), + Click.on(Notepad.ADDLIST), + Click.on(Notepad.LIST), + Enter.theValue("Prueba").into(Notepad.LIST), + Click.on(Notepad.ADDLIST), + Click.on(Notepad.DELETE), + Click.on(Notepad.DELETE), + Click.on(Notepad.DELETE), + Click.on(Notepad.DELETE) + + + + ); + } + public static Escenario2 on(){return new Escenario2();} +} diff --git a/src/main/java/net/onlinenotepad/userinterface/Notepad.java b/src/main/java/net/onlinenotepad/userinterface/Notepad.java new file mode 100644 index 0000000..f54cdbb --- /dev/null +++ b/src/main/java/net/onlinenotepad/userinterface/Notepad.java @@ -0,0 +1,15 @@ +package net.onlinenotepad.userinterface; + +import net.serenitybdd.screenplay.targets.Target; + +public class Notepad { + public static final Target BUTTONJOIN = Target.the("TextoEnrriquecido").locatedBy("//div[@id=\"v-pills-tab\"]/button[@id='richtextnote-tab']"); + public static final Target BUTTONNEGRITA = Target.the("TextoEnrriquecido").locatedBy("(//button[@class=\"ck ck-button ck-on\"])[1]"); + public static final Target TEXT = Target.the("Texto").locatedBy("//div[@id=\"editor\"]"); + public static final Target LIST = Target.the("Texto").locatedBy("//input[@id=\"my-list\"]"); + public static final Target ADDLIST = Target.the("Texto").locatedBy("//button[@id=\"addnewlist\"]"); + public static final Target OPTIONLIST = Target.the("Texto").locatedBy("(//button[@id=\"tasklist-tab\"])[1]"); + + public static final Target DELETE = Target.the("Texto").locatedBy("//img[@class=\"me-2 remove_list_item\"]"); + public static final Target SEARCH = Target.the("Prueba").locatedBy("//span[@style=\"width:95%;word-break:break-word\"]"); +} diff --git a/src/test/java/net/onlinenotepad/runners/notepad_runner.java b/src/test/java/net/onlinenotepad/runners/notepad_runner.java index 6adbbb4..79a4638 100644 --- a/src/test/java/net/onlinenotepad/runners/notepad_runner.java +++ b/src/test/java/net/onlinenotepad/runners/notepad_runner.java @@ -1,6 +1,8 @@ package net.onlinenotepad.runners; -import io.cucumber.junit.CucumberOptions; +import cucumber.api.CucumberOptions; + +import cucumber.api.SnippetType; import net.serenitybdd.cucumber.CucumberWithSerenity; import org.junit.runner.RunWith; @@ -8,7 +10,8 @@ @CucumberOptions( features = "src/test/resources/features/my-devco-feature.feature", glue = "net.onlinenotepad.stepdefinitions", - snippets = CucumberOptions.SnippetType.CAMELCASE + snippets = SnippetType.CAMELCASE, + tags = "@Escenario2" ) public class notepad_runner { } diff --git a/src/test/java/net/onlinenotepad/stepdefinitions/stepDefs.java b/src/test/java/net/onlinenotepad/stepdefinitions/stepDefs.java index bccf8aa..b3b8ed6 100644 --- a/src/test/java/net/onlinenotepad/stepdefinitions/stepDefs.java +++ b/src/test/java/net/onlinenotepad/stepdefinitions/stepDefs.java @@ -1,14 +1,52 @@ package net.onlinenotepad.stepdefinitions; -import io.cucumber.java.Before; +import cucumber.api.java.Before; +import cucumber.api.java.en.Given; +import cucumber.api.java.en.Then; +import cucumber.api.java.en.When; +import net.onlinenotepad.questions.QEscenario1; +import net.onlinenotepad.tasks.Escenario1; +import net.onlinenotepad.tasks.Escenario2; +import net.serenitybdd.screenplay.GivenWhenThen; +import net.serenitybdd.screenplay.abilities.BrowseTheWeb; +import net.serenitybdd.screenplay.actions.Open; +import net.serenitybdd.screenplay.actors.Cast; import net.serenitybdd.screenplay.actors.OnStage; import net.serenitybdd.screenplay.actors.OnlineCast; +import net.thucydides.core.annotations.Managed; +import org.hamcrest.Matchers; +import org.openqa.selenium.WebDriver; + public class stepDefs { + @Managed + private WebDriver myDirver; @Before public void prepareStage() { - OnStage.setTheStage(new OnlineCast()); + OnStage.setTheStage(Cast.ofStandardActors()); + OnStage.theActorCalled("Esteban"); + OnStage.theActorInTheSpotlight().can(BrowseTheWeb.with(myDirver)); + } + + + @Given("el usuario inicia la pagina") + public void elUsuarioIniciaLaPagina() { + OnStage.theActorInTheSpotlight().attemptsTo(Open.url("https://www.online-notepad.net/es/bloc-de-notas-online")); + } + @When("el usuario selecciona la opcion de nota enriquecida y ingresa el texto Prueba") + public void elUsuarioSeleccionaLaOpcionDeNotaEnriquecidaYIngresaElTextoPrueba() { + OnStage.theActorInTheSpotlight().wasAbleTo(Escenario1.on()); } + @Then("el usuario deberia visualizar (.*)") + public void elUsuarioDeberiaVisualizarPrueba(String Location) { + OnStage.theActorInTheSpotlight().should(GivenWhenThen.seeThat(QEscenario1.in(), Matchers.containsString(Location))); + + } + @When("^el usuario selecciona la opcion de lista y agrega (\\d+) notas$") + public void elUsuarioSeleccionaLaOpcionDeListaYAgregaNotas(int arg1) { + OnStage.theActorInTheSpotlight().wasAbleTo(Escenario2.on()); + } + } diff --git a/src/test/resources/features/my-devco-feature.feature b/src/test/resources/features/my-devco-feature.feature index e69de29..6b6b1c9 100644 --- a/src/test/resources/features/my-devco-feature.feature +++ b/src/test/resources/features/my-devco-feature.feature @@ -0,0 +1,14 @@ +Feature: Prueba devco + + @Escenario1 + Scenario: Nota enriquecida con negrilla + Given el usuario inicia la pagina + When el usuario selecciona la opcion de nota enriquecida y ingresa el texto Prueba + Then el usuario deberia visualizar Prueba + + + @Escenario2 + Scenario: Lista eliminar + Given el usuario inicia la pagina + When el usuario selecciona la opcion de lista y agrega 6 notas + Then el usuario deberia visualizar Prueba diff --git a/src/test/resources/webdriver/chromedriver b/src/test/resources/webdriver/chromedriver old mode 100755 new mode 100644 index eb6757a..015e261 Binary files a/src/test/resources/webdriver/chromedriver and b/src/test/resources/webdriver/chromedriver differ