diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java index 750b1eeeb2..ff406aea6d 100755 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java @@ -24,6 +24,7 @@ import org.keycloak.testsuite.util.DroneUtils; import org.keycloak.testsuite.util.OAuthClient; import org.keycloak.testsuite.util.WaitUtils; import org.openqa.selenium.By; +import org.openqa.selenium.Keys; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; @@ -216,8 +217,7 @@ public class LoginPage extends LanguageComboboxAwarePage { } public void clickRegister() { - registerLink.click(); - WaitUtils.waitForPageToLoad(); + clickLink(registerLink); } public void clickSocial(String alias) { diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java index 2f9971b90c..c30d0794fc 100755 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java @@ -129,7 +129,7 @@ public class LoginTotpPage extends LanguageComboboxAwarePage { public void selectOtpCredential(String credentialName) { WebElement webElement = driver.findElement( getXPathForLookupCardWithName(credentialName)); - UIUtils.clickLink(webElement); + UIUtils.click(webElement); } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/UIUtils.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/UIUtils.java index 89fc7e31cf..2d0841a161 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/UIUtils.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/UIUtils.java @@ -10,7 +10,6 @@ import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; -import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.Select; import org.openqa.selenium.support.ui.WebDriverWait; @@ -69,11 +68,35 @@ public final class UIUtils { performOperationWithPageReload(() -> getCurrentDriver().navigate().refresh()); } + /** + * The method executes click or sendKeys(Keys.ENTER) in the element. + * In the chrome driver click is emulated by pressing the ENTER key. Since + * the upgrade to chrome 128 some clicks are missed and that triggers CI + * failures. The method is intended to be used for buttons and links which + * accept clicking by pressing the ENTER key. If the element passed does + * not allow clicking using keys use the {@link #click(WebElement) click} + * method. + * + * @param element The element to click + */ public static void clickLink(WebElement element) { WebDriver driver = getCurrentDriver(); waitUntilElement(element).is().clickable(); + performOperationWithPageReload(BrowserDriverUtil.isDriverChrome(driver) + ? () -> element.sendKeys(Keys.ENTER) + : element::click); + } + + /** + * The method executes click in the element. This method always uses click and + * is not emulated by key pressing in chrome. + * + * @param element The element to click + */ + public static void click(WebElement element) { + waitUntilElement(element).is().clickable(); performOperationWithPageReload(element::click); } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/webauthn/pages/fragments/AbstractHeader.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/webauthn/pages/fragments/AbstractHeader.java index fc0f9fcb94..fea77bb28e 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/webauthn/pages/fragments/AbstractHeader.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/webauthn/pages/fragments/AbstractHeader.java @@ -20,7 +20,7 @@ package org.keycloak.testsuite.webauthn.pages.fragments; import org.openqa.selenium.WebElement; import static org.junit.Assert.assertEquals; -import static org.keycloak.testsuite.util.UIUtils.clickLink; +import static org.keycloak.testsuite.util.UIUtils.click; import static org.keycloak.testsuite.util.UIUtils.getTextFromElement; import static org.keycloak.testsuite.util.UIUtils.isElementVisible; @@ -49,7 +49,7 @@ public abstract class AbstractHeader extends AbstractFragmentWithMobileLayout { protected void clickToolsBtn(WebElement btn) { clickOptions(); - clickLink(btn); + click(btn); } protected boolean isToolsBtnVisible(WebElement btn) {