0

WebDriver APIは、のfindElements存在または非存在を確認するために使用すると述べていますWebElement。このメソッドは、暗黙のタイムアウト値に従います。したがって、存在をチェックするメソッドを書きたいが、メソッドが暗黙のタイムアウトを待たないようにしたい場合は、次のように一時的に抑制することができます。

protected boolean doesElementExist(By by) {
    // Temporarily set the implicit timeout to zero
    driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);
    // Check to see if there are any elements in the found list
    boolean exists = driver.findElements(by).size() > 0;
    // Return to the original implicit timeout value
    driver.manage().timeouts()
            .implicitlyWait(Properties.TIMEOUT_TEST, TimeUnit.SECONDS);
    return exists;
}

WebDriverただし、これにはタイムアウト値を管理する必要があります。By現在、上記のようなメソッドをcalledのカスタム サブクラスに移動Locatorして、ドライバーまたは特定の からこれらのメソッドを呼び出すことができるようにしていWebElementますLocator

問題は、私のLocatorクラス内に がなく、WebDriverがあることSearchContextです。findElementsのコンテキスト内から、タイムアウトを変更する方法、またはカスタムタイムアウトなどを呼び出す方法があるはずだと思いますWebElement。そのような方法はありますか?WebDriverまたは、カスタムおよびWebElement実装 (これらの新しいメソッドを利用できるようにするために拡張されています)でこれらのメソッドの実装でタイムアウト値を抑制する必要がありますか? ありがとう!

4

0 に答える 0