zsperske
09/26/2023, 8:47 PMperformClick on it, sometimes nothing will happen as it is not displayed yet. If I hack it to wait briefly before trying to click it, the click goes through successfully. It seems intentional that there is no SemanticsMatcher for isDisplayed but what is the alternative?Zach Klippenstein (he/him) [MOD]
09/26/2023, 9:00 PMassertIsDisplayedzsperske
09/26/2023, 9:01 PMZach Klippenstein (he/him) [MOD]
09/26/2023, 9:13 PMrule.waitUntil { isDisplayed() }zsperske
09/26/2023, 9:13 PMzsperske
09/26/2023, 9:15 PMfun ComposeTestRule.waitUntilDisplayed(
matcher: SemanticsMatcher,
timeoutMillis: Long = DEFAULT_WAIT_TIMEOUT
): SemanticsNodeInteraction {
val deadline = System.currentTimeMillis() + timeoutMillis
while (true) {
try {
return waitUntilExists(matcher).assertIsDisplayed()
} catch (error: AssertionError) {
if (System.currentTimeMillis() < deadline) {
android.os.SystemClock.sleep(50)
} else {
throw error
}
}
}
}Zach Klippenstein (he/him) [MOD]
09/26/2023, 9:21 PMZach Klippenstein (he/him) [MOD]
09/26/2023, 9:21 PMcheckIsDisplayed method, don’t see any reason why that couldn’t be publiczsperske
09/26/2023, 9:22 PMZach Klippenstein (he/him) [MOD]
09/26/2023, 9:22 PMzsperske
09/26/2023, 9:24 PMZach Klippenstein (he/him) [MOD]
09/26/2023, 9:26 PMOutputTransformation soon 😅Zach Klippenstein (he/him) [MOD]
09/26/2023, 9:27 PMzsperske
09/26/2023, 9:34 PMZach Klippenstein (he/him) [MOD]
09/26/2023, 9:35 PMzsperske
09/26/2023, 9:36 PMzsperske
09/26/2023, 9:36 PMZach Klippenstein (he/him) [MOD]
09/26/2023, 9:36 PMzsperske
09/26/2023, 9:38 PMJacob Ras
09/26/2023, 9:56 PMcomposeRule.waitUntilAtLeastOneExists(hasTestTag("x")) which works, but doesn't mean displayed yet.Zach Klippenstein (he/him) [MOD]
09/26/2023, 9:57 PMJacob Ras
09/26/2023, 10:13 PMvide
09/26/2023, 10:14 PM