Tymczasowe pomijanie niejawnych czeków za pomocą WebDriver

Kiedy używasz niejawnych czeków,zgodnie z zaleceniami, Ja wciążczasami chcę potwierdzićnatychmiastowy niewidzialność lub nieistnienie elementów.

Innymi słowy, jawiedzieć niektóre elementy powinny być ukryte, a moje testy sprawią, że to stwierdzenieszybki, bez wydawania kilku sekund z powodu (w inny sposób użyteczny) niejawnego oczekiwania.

Jedną z rzeczy, które próbowałem, była metoda pomocnicza:

// NB: doesn't seem to do what I want
private boolean isElementHiddenNow(String id) {
    WebDriverWait zeroWait = new WebDriverWait(driver, 0);
    ExpectedCondition<Boolean> c = invisibilityOfElementLocated(By.id(id));
    try {
        zeroWait.until(c);
        return true;
    } catch (TimeoutException e) {
        return false;
    }
}

Ale w powyższym kodzie wezwanie dountil() tylko wracapo upływie czasu oczekiwania, tzn. nie robi tego, co chciałem.

To jedyny sposób, w jaki do tej pory udało mi się znaleźć:

@Test
public void checkThatSomethingIsNotVisible()  {
    turnOffImplicitWaits();
    // ... the actual test
    turnOnImplicitWaits();
}

... gdzie np.turnOffImplicitWaits() jest pomocnikiem we wspólnej superklasie Selenium:

protected void turnOffImplicitWaits() {
    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
}

Ale to nie jest zbyt eleganckie.Czy istnieje jakiś wyraźniejszy sposób na ominięcie dorozumianego oczekiwania?

questionAnswers(6)

yourAnswerToTheQuestion