Kiedy użyć jawnego oczekiwania vs niejawne oczekiwanie w Selenium Webdriver?

Ja używam:

<code>driver.manage().timeouts().implicitlyWait(180, TimeUnit.SECONDS);
</code>

Nadal jednak ciągle nie działa dla niższego elementu

<code>    driver.findElement(By.id("name")).clear();
    driver.findElement(By.id("name")).sendKeys("Create_title_01");
</code>

Dodałem kod oczekiwania:

<code>for (int second = 0;; second++) {
        if (second >= 120) fail("timeout");
        try { if (isElementPresent(By.id("name"))) break; } catch (Exception e) {}
        Thread.sleep(1000);
    }
</code>

Czy nie powinno się ukrywać oczekiwania, aby czekać na znalezienie elementu? Byłoby też lepiej, gdybym używał Explicit wait zamiast kodu, który dodałemThread.sleep()?

questionAnswers(6)

yourAnswerToTheQuestion