package org.keycloak.testsuite.adapter.page;
import org.keycloak.testsuite.page.AbstractPage;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import javax.ws.rs.core.UriBuilder;
import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
/**
* @author mhajas
*/
public class HawtioPage extends AbstractPage {
public String getUrl() {
if (Boolean.parseBoolean(System.getProperty("app.server.ssl.required"))) {
return "https://localhost:" + System.getProperty("app.server.https.port", "8543") + "/hawtio";
}
return "http://localhost:" + System.getProperty("app.server.http.port", "8180") + "/hawtio";
}
@Override
public UriBuilder createUriBuilder() {
return UriBuilder.fromUri(getUrl());
}
@FindBy(xpath = "//a[@class='dropdown-toggle' and @data-original-title='Preferences and log out']")
private WebElement dropDownMenu;
@FindBy(xpath = "//a[@ng-click='logout()']")
private WebElement logoutButton;
public void logout() {
waitUntilElement(dropDownMenu).is().visible();
dropDownMenu.click();
waitUntilElement(logoutButton).is().visible();
logoutButton.click();
By modal = By.xpath("//input[@type='submit' and @value='Yes']");
waitUntilElement(modal).is().visible();
driver.findElement(modal).click();
}
}