Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
DomiSMPPage.java 2.81 KiB
Newer Older
import ddsl.dcomponents.AlertComponent;
import ddsl.dcomponents.BreadcrumpComponent;
import ddsl.dcomponents.DComponent;
import ddsl.dcomponents.SideNavigationComponent;
import ddsl.dobjects.DButton;
Mihai BOZ's avatar
Mihai BOZ committed
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
import pages.LoginPage;
Mihai BOZ's avatar
Mihai BOZ committed
/**
 * Page object for the common components from Domismp like navigation, right menu. This contains the locators of the page and the methods for the behaviour of the page
 */
public class DomiSMPPage extends DComponent {
    @FindBy(css = "cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing")
    protected WebElement overlay;
    @FindBy(id = "login_id")
    private WebElement loginBtnTop;
    @FindBy(id = "settingsmenu_id")
    private WebElement rightMenuBtn;
    @FindBy(id = "logout_id")
    private WebElement logoutMenuBtn;
    @FindBy(css = "#okbuttondialog_id ")
    private WebElement dialogOKbutton;

Mihai BOZ's avatar
Mihai BOZ committed
    private AlertComponent alertComponent = null;



    public DomiSMPPage(WebDriver driver) {
        super(driver);
        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this);
Mihai BOZ's avatar
Mihai BOZ committed
        waitForPageToLoaded();
    public SideNavigationComponent getSidebar() {
        return new SideNavigationComponent(driver);
    public BreadcrumpComponent getBreadcrump() {
        return new BreadcrumpComponent(driver);
    }

    public LoginPage goToLoginPage() {
        loginBtnTop.click();
        return new LoginPage(driver);
    }

    public void logout() {
Mihai BOZ's avatar
Mihai BOZ committed
        wait.waitforOverlayToGone();
        rightMenuBtn.click();
        // TODO investigate why sometimes the button is not in view
        // Driver Issue:  is not clickable at point (105, 356). Other element would receive the click:
        Actions actions = new Actions(driver);
        actions.moveToElement(logoutMenuBtn);
        actions.perform();
        logoutMenuBtn.click();
        data.getCookies().clear();
        data.setXSRFToken("");
    public void refreshPage() {
        driver.navigate().refresh();
        waitForPageToLoaded();
Mihai BOZ's avatar
Mihai BOZ committed
    public AlertComponent getAlertArea(){
        if (  alertComponent == null){
            alertComponent = new AlertComponent(driver);
        }
        return alertComponent;
    }
    public DButton getExpiredDialoginbutton() {
        return weToDButton(dialogOKbutton);
    }
    public void waitForPageToLoaded() {
Mihai BOZ's avatar
Mihai BOZ committed
        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("return document.readyState").toString().equals("complete");