Wann sollte in Selenium Webdriver explizites Warten oder implizites Warten verwendet werden?

Ich benutze:

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

Für das folgende Element schlägt es jedoch immer noch fehl

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

Ich habe einen Wartecode hinzugefügt:

<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>

Sollte nicht implizites Warten darauf warten, bis ein Element gefunden wurde? Wäre es auch besser, wenn ich Explicit wait anstelle des Codes verwende, den ich hinzugefügt habe?Thread.sleep()?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage