8

Selenium RCを使用する場合、次のようなメソッドsetSpeedがあります。

selenium.setSpeed( "500");

Selenium WebDriverでブラウザの速度を制御する方法は何ですか?

4

4 に答える 4

12

SeleniumWebDriverの各「ステップ」の速度を制御する方法はもうありません。かつてはsetSpeed()、インターフェースにメソッドがありましたOptions(Javaバインディングにあります。他のバインディングには、適切な名前のオブジェクトに同様の構造がありました)が、ずっと前に非推奨になりました。この背後にある理論は、WebDriverコードのすべてのステップを事前に遅くする必要はないということです。自動化するアプリケーションで何かが発生するのを待つ必要がある場合は、暗黙的または明示的な待機ルーチンを使用する必要があります。

于 2012-06-22T14:44:09.207 に答える
6

簡単な方法はありません。ただし、使用できるハックがあります。Webdriverのメソッドをオーバーライドし、明示的なスリープを導入して、テストの速度を落とすことができます。findElementメソッドをオーバーライドする

public class _WebDriver extends FirefoxDriver {

@Override
public WebElement findElement(By by) {
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return by.findElement((SearchContext) this);
}

}
于 2013-06-03T15:12:58.127 に答える
4

Thread.Sleep(500)Webdriverの実行に使用している任意の言語で(または同等の)使用できます。これにより、スレッドは正確なミリ秒数の間一時停止します。

または、ここで説明する明示的または暗黙的な待機を使用することもできます。

  • 明示的な待機を使用すると、を定義できますExpectedCondition。Webdriverは、trueが返されるまで500ミリ秒ごとに条件をチェックします(その後、実行はすぐに再開されます)。

  • 暗黙の待機により、WebドライバーはDOM内で何かを見つけようとして再試行を続けます。要素が見つかるとすぐに実行が再開されます。

暗黙的または明示的な待機は、500ミリ秒の一時停止を保証しないことに注意してください。

于 2012-06-25T09:01:46.493 に答える
0

さらに良いのは、ExpectedConditionと一緒にWebドライバーFluentWaitクラスを使用することです。サンプルはここにあります: http ://www.summa-tech.com/blog/2011/10/10/using-page-objects-with-selenium-and-web-driver-20/

于 2012-06-26T11:26:44.987 に答える