0

Android アプリケーションのテストを自動化しています。実際のテストを開始する前に、待機したいアプリをロードするときにスプラッシュ スクリーンが表示されます。を使用して、スプラッシュ スクリーンが非表示になるまで待機waitUntilInvisibleするメソッドを作成しました。FluentWait

問題は、スプラッシュ スクリーンのポーリングが、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