我正在对 Android 应用程序进行自动化测试。在我开始实际测试之前,加载我想等待的应用程序时会出现一个闪屏。我创建了waitUntilInvisible
使用 aFluentWait
等待启动画面不可见的方法。
waitUntil
问题是,启动画面的轮询仅在到达线路后几秒钟开始。这引入了不必要的延迟,我想摆脱它。
难道我做错了什么?这可能是设计/技术限制吗?
方法:
public static boolean waitUntilInvisible(AndroidDriver driver, int timeLimitInSeconds, String targetResourceId) {
boolean isElementAbsent;
try {
MobileElement mobileElement = (MobileElement) driver.findElementByAndroidUIAutomator("new UiSelector().resourceId(\"" + targetResourceId + "\")");
Wait wait = new FluentWait(driver).withTimeout(Duration.ofSeconds(timeLimitInSeconds)).pollingEvery(Duration.ofMillis(1000)).ignoring(NoSuchElementException.class);
// For some reason this takes like 5 seconds to start polling for the element.
wait.until(ExpectedConditions.invisibilityOf(mobileElement));
System.out.println("Element "+targetResourceId+"is absent");
return true;
} catch (Exception e) {
isElementAbsent = false;
System.out.println("WaitForAbsence exception:");
System.out.println(e.getMessage());
return false;
}
}
我称之为:
Utilities.waitUntilInvisible(driver, 120, "resourceId");