diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/JSConsoleExample.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/JSConsoleExample.java
index 15f0308..b1645ba 100755
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/JSConsoleExample.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/adapter/page/JSConsoleExample.java
@@ -113,11 +113,15 @@ public class JSConsoleExample extends AbstractPageWithInjectedUrl {
         responseModeSelect.selectByValue(value);
     }
 
-    public String getOutputText() {
-        return outputArea.getText();
+    public WebElement getOutputElement() {
+        return outputArea;
     }
 
-    public String getEventsText() {
-        return eventsArea.getText();
+    public WebElement getEventsElement() {
+        return eventsArea;
+    }
+
+    public WebElement getInitButtonElement() {
+        return initButton;
     }
 }
                 
                
                    
                    diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
index e0d87f7..6100b13 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
@@ -46,6 +46,7 @@ import static org.keycloak.testsuite.util.IOUtil.loadRealm;
 import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlDoesntStartWith;
 import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
 import static org.keycloak.testsuite.util.WaitUtils.pause;
+import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
 
 public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampleAdapterTest {
 
@@ -94,7 +95,7 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
         jsConsoleExamplePage.navigateTo();
         assertCurrentUrlStartsWith(jsConsoleExamplePage);
 
-        pause(1000);
+        waitUntilElement(jsConsoleExamplePage.getInitButtonElement()).is().present();
 
         jsConsoleExamplePage.init();
         jsConsoleExamplePage.logIn();
@@ -107,16 +108,15 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
         testRealmLoginPage.form().login("user", "password");
         assertCurrentUrlStartsWith(jsConsoleExamplePage);
         jsConsoleExamplePage.init();
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Init Success (Authenticated)"));
-        assertTrue(jsConsoleExamplePage.getEventsText().contains("Auth Success"));
 
-        pause(1000);
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Init Success (Authenticated)");
+        waitUntilElement(jsConsoleExamplePage.getEventsElement()).text().contains("Auth Success");
 
         jsConsoleExamplePage.logOut();
         assertCurrentUrlStartsWith(jsConsoleExamplePage);
         jsConsoleExamplePage.init();
 
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Init Success (Not Authenticated)"));
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Init Success (Not Authenticated)");
     }
 
     @Test
@@ -126,16 +126,16 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
 
         jsConsoleExamplePage.init();
         jsConsoleExamplePage.refreshToken();
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Failed to refresh token"));
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Failed to refresh token");
 
         jsConsoleExamplePage.logIn();
         testRealmLoginPage.form().login("user", "password");
         assertCurrentUrlStartsWith(jsConsoleExamplePage);
         jsConsoleExamplePage.init();
-        assertTrue(jsConsoleExamplePage.getEventsText().contains("Auth Success"));
+        waitUntilElement(jsConsoleExamplePage.getEventsElement()).text().contains("Auth Success");
 
         jsConsoleExamplePage.refreshToken();
-        assertTrue(jsConsoleExamplePage.getEventsText().contains("Auth Refresh Success"));
+        waitUntilElement(jsConsoleExamplePage.getEventsElement()).text().contains("Auth Refresh Success");
     }
 
     @Test
@@ -144,21 +144,21 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
         assertCurrentUrlStartsWith(jsConsoleExamplePage);
         jsConsoleExamplePage.init();
         jsConsoleExamplePage.refreshToken();
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Failed to refresh token"));
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Failed to refresh token");
 
         jsConsoleExamplePage.logIn();
         testRealmLoginPage.form().login("user", "password");
         assertCurrentUrlStartsWith(jsConsoleExamplePage);
         jsConsoleExamplePage.init();
-        assertTrue(jsConsoleExamplePage.getEventsText().contains("Auth Success"));
+        waitUntilElement(jsConsoleExamplePage.getEventsElement()).text().contains("Auth Success");
 
         jsConsoleExamplePage.refreshTokenIfUnder30s();
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Token not refreshed, valid for"));
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Token not refreshed, valid for");
 
         pause((TOKEN_LIFESPAN_LEEWAY + 2) * 1000);
 
         jsConsoleExamplePage.refreshTokenIfUnder30s();
-        assertTrue(jsConsoleExamplePage.getEventsText().contains("Auth Refresh Success"));
+        waitUntilElement(jsConsoleExamplePage.getEventsElement()).text().contains("Auth Refresh Success");
     }
 
     @Test
@@ -168,17 +168,16 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
 
         jsConsoleExamplePage.init();
         jsConsoleExamplePage.getProfile();
-        pause(500);
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Failed to load profile"));
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Failed to load profile");
 
         jsConsoleExamplePage.logIn();
         testRealmLoginPage.form().login("user", "password");
         assertCurrentUrlStartsWith(jsConsoleExamplePage);
         jsConsoleExamplePage.init();
-        assertTrue(jsConsoleExamplePage.getEventsText().contains("Auth Success"));
+        waitUntilElement(jsConsoleExamplePage.getEventsElement()).text().contains("Auth Success");
 
         jsConsoleExamplePage.getProfile();
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("\"username\": \"user\""));
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("\"username\": \"user\"");
     }
 
     @Test
@@ -212,7 +211,8 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
         oAuthGrantPage.accept();
 
         jsConsoleExamplePage.init();
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Init Success (Authenticated)"));
+
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Init Success (Authenticated)");
 
         applicationsPage.navigateTo();
         applicationsPage.revokeGrantForApplication("js-console");
@@ -271,7 +271,7 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
 
         logInAndInit("implicit");
 
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Init Success (Authenticated)"));
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Init Success (Authenticated)");
     }
 
     @Test
@@ -294,7 +294,7 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
 
         jsConsoleExamplePage.refreshToken();
 
-        assertTrue(jsConsoleExamplePage.getOutputText().contains("Failed to refresh token"));
+        waitUntilElement(jsConsoleExamplePage.getOutputElement()).text().contains("Failed to refresh token");
     }
 
     @Test
@@ -309,7 +309,7 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
 
         pause(6000);
 
-        assertTrue(jsConsoleExamplePage.getEventsText().contains("Access token expired"));
+        waitUntilElement(jsConsoleExamplePage.getEventsElement()).text().contains("Access token expired");
     }
 
     private void setImplicitFlowFroClient() {