package org.keycloak.testsuite.console.page.authentication; import org.keycloak.testsuite.console.page.AdminConsoleRealm; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import static org.keycloak.testsuite.util.WaitUtils.*; /** * @author tkyjovsk * @author mhajas */ public class Authentication extends AdminConsoleRealm { @FindBy(xpath = "//h1[text()='Authentication']/..") private AuthenticationTabs authenticationTabs; @FindBy(xpath = "//div[contains(@class, 'alert-danger')]") private WebElement error; @FindBy(xpath = "//div[contains(@class, 'alert-success')]") private WebElement success; @FindBy(id = "notification-close") private WebElement close; public String getSuccessMessage() { waitUntilElement(success).is().present(); return success.getText(); } public String getErrorMessage() { waitUntilElement(error).is().present(); return error.getText(); } public void closeNotification() { if (close.isDisplayed()) { close.click(); } waitUntilElement(close).is().not().visible(); } public AuthenticationTabs tabs() { return authenticationTabs; } @Override public String getUriFragment() { return super.getUriFragment() + "/authentication"; } public class AuthenticationTabs { @FindBy(linkText = "Flows") private WebElement flowsTab; @FindBy(linkText = "Required Actions") private WebElement requiredActionsTab; @FindBy(linkText = "Password Policy") private WebElement passwordPolicyTab; @FindBy(linkText = "Bindings") private WebElement binding; @FindBy(linkText = "OTP Policy") private WebElement otpPolicy; public void flows() { flowsTab.click(); } public void requiredActions() { requiredActionsTab.click(); } public void passwordPolicy() { passwordPolicyTab.click(); } public void binding() { binding.click(); } public void otpPolicy() { otpPolicy.click(); } } }