2

SeleniumIDEのJavaJunitエクスポーターは、デフォルトで30秒の暗黙的な待機を設定します。つまり、要素をテストするアサーションが存在しない場合、30秒間の不要な遅延が発生します。

タイムアウト1の明示的な待機(WebDriverWaitクラス)を使用してみましたが、それでも約30秒かかりました。

それで、とにかくすべての種類のロケーター(つまりByクラス)の暗黙の待機をバイパスすることはありますか?

4

2 に答える 2

2

明示的な待機を使用する場合は、暗黙的な待機の設定を解除します。

driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
于 2012-11-16T06:22:52.957 に答える
1
boolean isElementPresent(By by) {
    try {
        driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
        driver.findElement(by);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        return true;
    }
    catch(Exception e){
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        return false;
    }
}

嫌ですが動作します。暗黙的に待機するすべてのコマンドは、オーバーロードできるはずです。ただし、find要素には2パラメーターバージョンがありません。多分それはByにありますか?

于 2013-02-26T18:36:07.413 に答える