All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.serenitybdd.screenplay.actions.OpenPageFromClassWithParameters Maven / Gradle / Ivy

There is a newer version: 4.2.8
Show newest version
package net.serenitybdd.screenplay.actions;

import net.serenitybdd.core.pages.PageObject;
import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.Interaction;
import net.serenitybdd.screenplay.abilities.BrowseTheWeb;
import net.serenitybdd.annotations.Step;
import net.thucydides.core.pages.Pages;

import java.util.Arrays;

import static net.serenitybdd.core.pages.PageObject.withParameters;

public class OpenPageFromClassWithParameters implements Interaction {

    private final String targetPageName;
    private final Class targetPageClass;
    private final String[] parameterValues;
    private final String parametersString;

    public OpenPageFromClassWithParameters(Class targetPageClass, String targetPageName, String... parameters) {
        this.targetPageClass = targetPageClass;
        this.targetPageName = targetPageName;
        this.parameterValues = parameters;
        this.parametersString = Arrays.toString(parameters);
    }

    @Step("{0} opens the #targetPageName with parameters #parametersString")
    public  void performAs(T theUser) {
        PageObject targetPage = new Pages(BrowseTheWeb.as(theUser).getDriver()).getPage(targetPageClass);
        targetPage.setDriver(BrowseTheWeb.as(theUser).getDriver());
        targetPage.open(withParameters(parameterValues));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy