FirefoxでSelenium IDEを使用し、待機コマンドを検索しています。私の問題は、外部マップが埋め込まれたWebサイトをテストすることです。この外部マップの読み込みには3〜5秒かかります。
私のコマンド:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
pause コマンドを使用します。速度を最速に設定します([アクション]-> [最速])。そうしないと動作しません。
これにより、5秒間遅延します:
コマンド:一時停止
ターゲット:5000
値:
これにより、3秒間遅延します:
コマンド:一時停止
ターゲット:3000
値:
ドキュメント:
http://release.seleniumhq.org/Selenium-core/1.0/reference.html#pause
ant
を使用している場合は、これを使用して5秒間の一時停止を示します。
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
つまり、target: 5000
およびvalue
は空です。参照が示すように:
pause(waitTime)
引数:
- waitTime-スリープする時間(ミリ秒)
指定された時間(ミリ秒単位)待つ
あなたの最善の策はおそらくwaitForCondition
であり、マップがロードされたときにtrueを返すjavascript関数を書くことです。
これは、C#(WebDriver/Selenium 2.0)で探していることを行います。
var browser = new FirefoxDriver();
var overallTimeout = Timespan.FromSeconds(10);
var sleepCycle = TimeSpan.FromMiliseconds(50);
var wait = new WebDriverWait(new SystemClock(), browser, overallTimeout, sleepCycle);
var hasTimedOut = wait.Until(_ => /* here goes code that looks for the map */);
never Thread.Sleepを使用すると、テストの信頼性が低くなります。
Pauseコマンドは、HTML形式のIDEで直接使用できます。
JavaまたはCを使用している場合、Thread.sleep(5000)を使用できます。時間はミリ秒単位です。他の言語は「sleep 5」またはtime.sleep(5)をサポートしています。設定した時間だけ待つための複数のオプションがあります。
リンクが表示されるまで待機し、クリックできます。
Command: waitForElementPresent Target: link=do something Value:
コマンドclickAndWait
の前に次のコードを追加して、特定のリンクが表示されるまでスクリプトが待機するようにします。
<tr>
<td>waitForVisible</td>
<td>link=do something</td>
<td></td>
</tr>
一時停止の代わりに待機コマンドを使用する方法は、ほとんどの場合、より効率的で安定しています。
私がテストしたサイトで動作することがわかったのは、これです。
waitForCondition | Selenium.browserbot.getUserWindow()。$。active == 0 | 20000
クレンダース
Chromeでは、「Selenium IDE」の場合、一時停止しないという問題もありました。以下のように指定すると、一時停止します。
これは10秒間停止します。