Java Selenium-WebDriver では、アプリケーションのロードに時間がかかるシナリオが発生する場合があります。ユーザー インターフェイスが原因となり、要素の場所のエラーが発生します。これに対処するには、暗黙的待機と明示的待機という 2 つの待機オプションがあります。
暗黙的待機:
コード スニペットで示されているように、暗黙的待機を 2 に設定します。秒:
<code class="java">driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);</code>
これは、ドライバーがエラーを発生させる前に、要素が使用可能になるまで最大 2 秒待機することを意味します。
明示的な待機:
明示的な待機では、ドライバーが続行する前に特定の条件が満たされる必要があります。 WebDriverWait.until メソッドは、この目的に使用できます。
<code class="java">WebDriverWait wait = new WebDriverWait(driver, 10); WebElement textbox = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("textbox")));</code>
ここで、ドライバーは続行する前に、ID「textbox」の要素が表示されるまで最大 10 秒待機します。
どちらが良いですか?
暗黙的待機と明示的待機の選択は状況によって異なります:
推奨事項:
あなたのような状況で、特定の時間枠内で要素の存在が保証されない場合は、明示的な待機、特に次のような流暢な待機を使用します。回答で提供されているものが推奨されます。
<code class="java">public WebElement fluentWait(final By locator) { // Fluent wait implementation provided in the answer... } WebElement textbox = fluentWait(By.id("textbox"));</code>
流暢な待機により、タイムアウトとポーリング間隔をカスタマイズできるため、柔軟性が高まり、不必要な遅延が防止されます。
以上がSelenium WebDriver の暗黙的待機と明示的待機: どちらを選択する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。