package de.asideas.crowdsource.testsupport.pageobjects; import de.asideas.crowdsource.testsupport.selenium.ElementUtils; import de.asideas.crowdsource.testsupport.selenium.SeleniumWait; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import static org.openqa.selenium.support.ui.ExpectedConditions.visibilityOf; @Component public class NavigationBar { @FindBy(css = "nav.top-bar a[href='#/login']") private WebElement loginLink; @FindBy(css = "nav.top-bar a[href='#/logout']") private WebElement logoutLink; @FindBy(css = "nav.top-bar a[href='#/signup']") private WebElement signupLink; @FindBy(css = "nav.top-bar a[href='#/project/new']") private WebElement newProjectLink; @FindBy(css = "nav-bar .toggle-topbar") private WebElement toggleIcon; @FindBy(css = "nav-bar nav") private WebElement navContainer; @Autowired private SeleniumWait wait; public void clickSignup() { wait.until(visibilityOf(signupLink)); signupLink.click(); } public void clickLogin() { wait.until(visibilityOf(loginLink)); loginLink.click(); } public void clickLogout() { wait.until(visibilityOf(logoutLink)); logoutLink.click(); } public void clickNewProject() { wait.until(visibilityOf(newProjectLink)); newProjectLink.click(); } public WebElement getToggleIcon() { return toggleIcon; } public boolean isExpanded() { return ElementUtils.hasClass(navContainer, "expanded"); } }