1

繰り返しのタスクを自動化したいと思います。たとえば、フォームを複数回送信します。ページの読み込みの問題に遭遇しているので、どうやってそれを行うのか聞いてほしい。たとえば、フォームに10個の異なるエントリを送信したいとします。だから私はこのようなことをすることができます:

for (int i =0; i<10; i++){
  String name = getNextName();
  String surname = getNextSurname();
  Webelement newUserButton = driver.findElement(By.id("newUser")));
  newUserButton.click();
  WebElement name = driver.findElement(By.id("name")));
  name.sendKeys(name);
  WebElement surname = driver.findElement(By.id("surname")));
  surname.sendKeys(surname);
  WebElement submit = driver.findElement(By.id("submit")));
  submit.click();
}

しかし、テスト環境が遅いと、上記のループがクラッシュする可能性があることがわかりました。コードにいくつか追加しようとしましThread.sleep()たが、たとえば200エントリを送信したい場合は、スクリプトを実行するのに非常に時間がかかる可能性があります。

フォームの準備ができたときだけ待つことができる機能はありますか?

4

2 に答える 2

2

明示的な待機を追加する必要があるようです-Webdriverのページを参照してください高度な使用法-明示的および暗黙的な待機

明示的な待機を使用すると、フォームが準備完了状態になるまで待機するようにWebドライバーに指示できます。通常、特定のフィールドが表示またはリセットされます([送信]をクリックしたときにフォームに何が起こるかによって異なります)。

于 2012-04-10T16:49:10.137 に答える
1

Selenium 2.0を使用している場合は、コードにWebDrivewWaitオブジェクトを作成することで、何らかのアクションが発生するまでWebDriverを待機させることができます。詳細については、このリンクを確認してください-http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html

于 2012-04-12T07:01:34.320 に答える