Java tutorial
package easycare.cuke.steps; import cucumber.annotation.en.Then; import cucumber.annotation.en.When; import easycare.cuke.WebSite; import easycare.cuke.pageObjects.AdminInsurersPage; import easycare.cuke.pageObjects.AdminLocationCreatePage; import easycare.cuke.pageObjects.AdminLocationListPage; import easycare.cuke.pageObjects.BasePageObject; import easycare.cuke.pageObjects.ChartsPage; import easycare.cuke.pageObjects.HomePage; import easycare.cuke.pageObjects.LicenseAgreementPage; import easycare.cuke.pageObjects.LoginPage; import easycare.cuke.pageObjects.PageBehavior; import easycare.cuke.pageObjects.behaviors.physicianPartners.PhysicianPartnersPage; import easycare.cuke.pageObjects.hme.HmeLocationsSearchPage; import easycare.cuke.pageObjects.hme.HmePartnersPage; import easycare.cuke.pageObjects.hme.HmeReferralInboxPage; import easycare.cuke.pageObjects.module.ModuleManagementPage; import easycare.cuke.pageObjects.organisation.MyOrganisationIntegrationPartnersPage; import easycare.cuke.pageObjects.organisation.MyOrganisationSecurityPage; import easycare.cuke.pageObjects.organisation.OrganisationListPage; import easycare.cuke.pageObjects.organisation.OrganisationNewPage; import easycare.cuke.pageObjects.patient.CreatePatientPage; import easycare.cuke.pageObjects.patient.PatientIntegratorsPage; import easycare.cuke.pageObjects.patient.PatientListPage; import easycare.cuke.pageObjects.patient.PatientPhysiciansPage; import easycare.cuke.pageObjects.patient.PatientViewBasicInfoPage; import easycare.cuke.pageObjects.patient.PatientViewContactInfoPage; import easycare.cuke.pageObjects.payor.GlobalPayorsListPage; import easycare.cuke.pageObjects.payor.HMEPayorsListPage; import easycare.cuke.pageObjects.report.ScheduledReportsPage; import easycare.cuke.pageObjects.user.CreateUserPage; import easycare.cuke.pageObjects.user.UserListPage; import easycare.cuke.util.SeleniumUtils; import org.openqa.selenium.WebDriver; import org.springframework.stereotype.Component; @Component public class NavigationSteps extends AbstractSteps { @When("^I navigate to the patients list page$") public PatientListPage iNavigateToThePatientsListPage() { return navigationMenu().goToPatientsList(); } @When("^I navigate to the patients list page with no search parameters applied$") public PatientListPage iNavigateToThePatientsListPageWithNoSearchParametersApplied() { return navigationMenu().goToPatientsListWithoutApplyFilter(); } @When("^I navigate to the new referrals list page$") public HmeReferralInboxPage iNavigateToTheNewReferralsListPage() { return navigationMenu().goToNewReferralsPatientsList(); } @When("^I navigate to the create patient page$") public CreatePatientPage iNavigateToTheCreatePatientPage() { return navigationMenu().goToCreatePatient(); } @When("^I navigate to the login page$") public LoginPage navigateToLoginPage() { return goToLoginPage(); } @When("^I navigate to the home page$") public HomePage navigateToHomePage() { return navigationMenu().goToHomePage(); } @When("^I navigate to the organi(?:s|z)ation module management page$") public ModuleManagementPage iNavigateToTheOrganisationModuleManagementPage() { return navigationMenu().goToOrganisationModuleManagement(); } @When("^I navigate to the organi(?:s|z)ation scheduled reports page$") public ScheduledReportsPage iNavigateToTheOrganisationScheduledReportsPage() { return navigationMenu().goToOrganisationScheduledReports(); } @When("^I navigate to the users list page$") public UserListPage iNavigateToTheUsersListPage() { return navigationMenu().goToUserList(); } @When("^I navigate to the create user page$") public CreateUserPage iNavigateToTheCreateUserPage() { return iNavigateToTheUsersListPage().goToCreateUser(); } @When("^I navigate to the create location page$") public AdminLocationCreatePage iNavigateToTheCreateLocationPage() { return iNavigateToTheLocationsListPage().goToCreateNewLocation(); } @When("^I navigate to the locations list page$") public AdminLocationListPage iNavigateToTheLocationsListPage() { return navigationMenu().goToLocationList(); } @When("^I navigate to the create organi(?s:z)ation page$") public OrganisationNewPage iNavigateToTheCreateOrganisationPage() { return navigationMenu().goToOrganisationList().goToCreateOrganisation(); } @When("^I navigate to the organisations list page$") public OrganisationListPage iNavigateToTheOrganisationsListPage() { return navigationMenu().goToOrganisationList(); } @When("^I navigate to the global payors list page$") public GlobalPayorsListPage iNavigateToTheGlobalPayorsListPage() { return navigationMenu().goToGlobalPayorsListPage(); } @When("^I navigate to the HME payors list page$") public HMEPayorsListPage iNavigateToTheHMEPayorsListPage() { return navigationMenu().goToHMEPayorsListPage(); } @Then("^I navigate to the HME Partners page$") public HmePartnersPage iNavigateToTheHmesListPage() { return navigationMenu().goToHmePartnersList(); } @When("^I navigate to the add hme page$") public HmeLocationsSearchPage iNavigateToTheAddHmePage() { return navigationMenu().goToAddHme(); } @When("^I navigate to my organisation security page$") public MyOrganisationSecurityPage iNavigateToMyOrganisationSecurityPage() { return navigationMenu().goToOrganisationDetailsMenuItem().followSecurityLink(); } @When("^I navigate to the organi(?:s|z)ation integration partners page$") public MyOrganisationIntegrationPartnersPage iNavigateToTheOrganizationIntegrationPartnersPage() { return navigationMenu().goToOrganisationDetailsMenuItem().followIntegrationPartnersLink(); } @When("^I navigate to the insurers list page$") public AdminInsurersPage iNavigateToTheInsurersListPage() { return navigationMenu().goToInsurerList(); } @When("^I navigate to the License Agreement page$") public void iNavigateToTheLicenseAgreementPage() { currentPage(LicenseAgreementPage.class).followLicenseAgreementLink(); } @When("^I navigate to a nonexistent page$") public void iNavigateToANonexistentPage() { String url = "/error/http404"; WebSite website = withBehavior(PageBehavior.class).getWebsite(); withBehavior(PageBehavior.class).getDriver().navigate().to(website.getBaseUrl() + url); } @When("^I navigate to the billing plans list page$") public void iNavigateToTheBillingPlansListPage() throws Throwable { navigationMenu().goToBillingPlansList(); } @Then("^I navigate to the Physician Partners list page$") public PhysicianPartnersPage iNavigateToThePhysicianPartnersViewPage() { return navigationMenu().goToPhysicianPartnersList(); } public ChartsPage iNavigateDirectlyToPatientChartsPage(String easycareNumber) { return iNavigateDirectlyToPatientPage(ChartsPage.class, "/charts", easycareNumber); } public PatientViewBasicInfoPage iNavigateDirectlyToPatientDetailsPage(String easycareNumber) { return iNavigateDirectlyToPatientPage(PatientViewBasicInfoPage.class, "", easycareNumber); } public PatientViewContactInfoPage iNavigateDirectlyToPatientContactDetailsPage(String easycareNumber) { return iNavigateDirectlyToPatientPage(PatientViewContactInfoPage.class, "/contactInfo", easycareNumber); } public PatientPhysiciansPage iNavigateDirectlyToPatientPhysiciansPage(String easycareNumber) { return iNavigateDirectlyToPatientPage(PatientPhysiciansPage.class, "/physicians", easycareNumber); } public PatientIntegratorsPage iNavigateDirectlyToPatientIntegratorsPage(String easycareNumber) { return iNavigateDirectlyToPatientPage(PatientIntegratorsPage.class, "/integrators", easycareNumber); } private <T extends BasePageObject> T iNavigateDirectlyToPatientPage(Class<T> pageClass, String suffix, String easycareNumber) { final WebDriver driver = currentPage().getDriver(); String url = currentPage().getBaseUrl() + "/patients/" + easycareNumber + suffix; driver.navigate().to(url); SeleniumUtils.pollForJqueryToComplete(driver); return currentPage(pageClass); } }