私はSelenium RCを使用するとき、setSpeedメソッドがあります。JavaのWebDriverにブラウザの速度を制御する方法はありますか?
selenium.setSpeed( "500");
Selenium WebDriverでブラウザの速度を制御する方法は何ですか?
私はSelenium RCを使用するとき、setSpeedメソッドがあります。JavaのWebDriverにブラウザの速度を制御する方法はありますか?
selenium.setSpeed( "500");
Selenium WebDriverでブラウザの速度を制御する方法は何ですか?
Thread.Sleep(500)
(または同等のもの)をwebdriverの実行に使用している言語で使用できます。これにより、正確なミリ秒数の間、スレッドが一時停止します。
別の方法としては、hereを説明明示または暗黙の待機を使用することができます。
明示的な待機では、ExpectedCondition
を定義できます。 Webdriverは、trueを返すまで500ミリ秒ごとに条件をチェックします(実行が直ちに再開します)。
暗黙の待機により、webdriverはDOM内の何かの検索を再試行します。要素が見つかるとすぐに実行が再開されます。
暗黙的または明示的な待機によって500ミリ秒の休止が保証されないことに注意してください。
Selenium WebDriverの各「ステップ」の速度を制御する方法はもはやありません。ある時点では、Options
インタフェースにはsetSpeed()
メソッドがありました(Javaバインディングでは、他のバインディングは適切な名前のオブジェクトに類似の構造を持っていました)が、これはずっと前から廃止されていました。この背後にある理論では、先験的にを入力する必要はありません。 WebDriverコードを1ステップずつスローダウンする必要があります。自動化するアプリケーションで何かが起きるのを待つ必要がある場合は、暗黙的または明示的な待機ルーチンを使用する必要があります。
ExpectedConditionと一緒にWebdriver FluentWaitクラスを使用することもできます。サンプルはここにあります: http://www.summa-tech.com/blog/2011/10/10/using-page-objects-with-selenium-and-web-driver-20/
はい、FluentWaitの良い例です –
まっすぐ進む方法はありません。しかし、あなたが使うことができるハックがあります、あなたは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);
}
}
[Implicit Wait](http://seleniumhq.org/docs/04_webdriver_advanced.html)をご存知ですか? WebDriverBackedSeleniumとsetSpeet(推奨しません)を使用することもできます –