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

info.novatec.testit.webtester.pages.Page Maven / Gradle / Ivy

package info.novatec.testit.webtester.pages;

import info.novatec.testit.webtester.adhoc.AdHocFinder;
import info.novatec.testit.webtester.browser.Browser;
import info.novatec.testit.webtester.internal.OffersAdHocFinding;
import info.novatec.testit.webtester.internal.OffersBrowserGetter;
import info.novatec.testit.webtester.internal.OffersPageCreation;
import info.novatec.testit.webtester.pagefragments.PageFragment;
import info.novatec.testit.webtester.pagefragments.annotations.IdentifyUsing;


/**
 * Base class for all WebTester pages.
 * 

* Provides the means to: *

    *
  • retrieve the {@link Browser browser} instance the page was created from
  • *
  • create other pages to be used in navigation methods
  • *
  • ad-hoc find {@link PageFragment page fragments}
  • *
* Example Page: *
 * public interface LoginPage extends Page {
 *
 *     @Wait(Until.VISIBLE)
 *     @IdentifyUsing("#username")
 *     TextField username();
 *
 *     @IdentifyUsing("#password")
 *     PasswordField password();
 *
 *     @Named("Login Button")
 *     @IdentifyUsing("#login")
 *     Button login();
 *
 *     @PostConstruct
 *     default void assertPageIsDisplayed() {
 *         assertThat(username().isVisible).isTrue();
 *         assertThat(password().isVisible).isTrue();
 *         assertThat(login().isVisible).isTrue();
 *     }
 *
 *     default MainPage loginWith(String username, String password) {
 *         return setUsername(username).setPassword(password).clickLogin();
 *     }
 *
 *     default LoginPage setUsername(String username) {
 *         username().setText(username);
 *         return this;
 *     }
 *
 *     default LoginPage setPassword(String password) {
 *         password().setText(password);
 *         return this;
 *     }
 *
 *     default MainPage clickLogin() {
 *         login().click();
 *         return create(MainPage.class);
 *     }
 *
 * }
 * 
* * @see IdentifyUsing * @see Browser * @see PageFragment * @see AdHocFinder */ public interface Page extends OffersBrowserGetter, OffersPageCreation, OffersAdHocFinding { @Override default AdHocFinder finder() { return new AdHocFinder(browser()); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy