以下は、テストステップの定義を実行するために使用されるステップクラスです
package serenity.page;
import net.serenitybdd.core.annotations.findby.By;
import net.thucydides.core.annotations.DefaultUrl;
import net.thucydides.core.pages.PageObject;
import org.openqa.selenium.WebElement;
@DefaultUrl("http://in-air-aciscoe1/webcoe2")
public class LoginPage extends PageObject {
public void enterUsername(String username) {
WebElement txtUsername = find(By.name("username"));
typeInto(txtUsername, username);
}
public void enterPassword(String password) {
WebElement txtPassword = find(By.name("password"));
typeInto(txtPassword, password);
}
public void clickOnSubmit() {
WebElement button = getDriver().findElement(By.xpath(".//* [@id='btnLogin']"));
button.click();
}
メインフォルダーではなく、テストフォルダーにすべてのJavaクラスファイルがあります
パッケージ serenity.stepDefinitions;
import cucumber.api.java.en.And;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import net.serenitybdd.core.annotations.findby.By;
import net.thucydides.core.annotations.Step;
import net.thucydides.core.annotations.Steps;
import org.openqa.selenium.WebDriver;
import serenity.runTests.LoginSteps;
public class LoginFeatureStepDefinitions {
WebDriver driver;
@Steps
LoginSteps loginSteps;
@When("^I should see the text element 'username'$")
public void iShouldSeeTheTextElementUsername() /**throws Throwable**/ {
loginSteps.enterUsername("arushi");
}
@Then("^I should see the text element 'password'$")
public void iShouldSeeTheTextElementPassword() /**throws Throwable**/ {
loginSteps.enterPassword("Pass-123");
}
@And("^I click the 'Login' button$")
public void iClickTheLoginButton() {
loginSteps.clickOnSubmit();
}
@And("^I should see the text element 'firstname'$")
public void iShouldSeeTheTextElementFirstname() /**throws Throwable**/ {
driver.findElement(By.name("firstname")).sendKeys("Arushi");
}
}
上記は、私が使用したステップ定義クラスです。
package serenity.runTests;
import net.thucydides.core.annotations.Step;
import net.thucydides.core.steps.ScenarioSteps;
import serenity.page.LoginPage;
public class LoginSteps extends ScenarioSteps {
private LoginPage loginPage; //automatically instantiated
@Step
public void enterUsername(String username) {
loginPage.enterUsername(username);
}
@Step
public void enterPassword(String password) {
loginPage.enterPassword(password);
}
@Step
public void clickOnSubmit() {
loginPage.clickOnSubmit();
}
}
上記は、テストに使用したステップ クラスです。CucumberWithSerenity.class を使用してテスト ランナーを実行します。