Omitir temporalmente las esperas implícitas con WebDriver

Cuando se utilizan esperas implícitas,como se aconseja aquí, Yo todavíaalgunas veces quiero afirmar elinmediato Invisibilidad o inexistencia de elementos.

En otras palabras, yosaber algunos elementos deben estar ocultos, y quiero que mis pruebas hagan esa afirmaciónrápido, sin pasar varios segundos debido a la espera implícita (de lo contrario útil).

Una cosa que intenté fue un método de ayuda como este:

// 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;
    }
}

Pero en el código anterior, la llamada auntil() solo devuelvedespués de que el tiempo de espera implícito ha pasado, es decir, no hace lo que quería.

Esta es la única manera que he encontrado hasta ahora que funciona:

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

... donde, por ejemploturnOffImplicitWaits() es un ayudante en la superclase de selenio común:

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

Pero eso no es muy elegante, creo.¿Hay alguna forma más limpia de evitar la espera implícita de vez en cuando?

Respuestas a la pregunta(6)

Su respuesta a la pregunta