0

我正在对 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");
4

0 回答 0