package com.autonomy.abc.selenium.find.login; import com.autonomy.abc.selenium.login.SSOFailureException; import com.hp.autonomy.frontend.selenium.login.HasLoggedIn; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class FindHasLoggedIn implements HasLoggedIn { private final WebDriver driver; public FindHasLoggedIn(final WebDriver driver) { this.driver = driver; } @Override public boolean hasLoggedIn() { try { new WebDriverWait(driver, 30) .withMessage("logging in to Find") .until(ExpectedConditions.visibilityOfElementLocated(By.className("find-pages-container"))); return true; } catch (final Exception e) { if (signedInTextVisible()) { throw new SSOFailureException(); } } return false; } private boolean signedInTextVisible() { return !driver.findElements(By.xpath("//*[text()='Signed in']")).isEmpty(); } }