diff options
| -rw-r--r-- | android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Page.kt | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Page.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Page.kt index 9a30112557..c865fb0e50 100644 --- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Page.kt +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Page.kt @@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.test.common.page import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice +import androidx.test.uiautomator.waitForStableInActiveWindow sealed class Page { val uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) @@ -11,6 +12,10 @@ sealed class Page { inline fun <reified T : Page> on(scope: T.() -> Unit = {}) { val page = T::class.java.getConstructor().newInstance() + // Wait for the screen to settle and so we don't proceed with actions too early. Otherwise, we + // might start clicking on the screen before it is in a resumed state. + page.uiDevice.waitForStableInActiveWindow() page.assertIsDisplayed() - return page.scope() + + page.scope() } |
