4

テスト中、次のことを行う必要があります。

  • ajaxリクエストにつながるボタンをクリックし、その後リダイレクトします
  • ユーザーが正しいページにリダイレクトされたことを確認する

私のコード:

$this->byId('reg_email')->value('test@example.com');
$this->byId('reg_password')->value('seecret');
// No form here, so i can't just call submit()
// This click invokes ajax request
$this->byId('reg_submit')->click();

// Check page content (this page should appear after redirect)
$msg = $this->byCssSelector('h1')->text();
$this->assertEquals('Welcome!', $msg);

問題

  • メッセージチェックは、Ajaxリクエストとページリダイレクトの前ではなく、クリック直後に行われます

解決策、私は好きではありません:

  • sleep(3);内容確認前に追記。

私はそれが好きではありません:

  • ばかげている
  • 応答が速い場合は時間を失うことになり、リクエストが長い場合は ajax リクエストが完了する前にコンテンツ チェックが行われます。

ajax request+refresh を追跡してコンテンツをジャストインタイムでチェックする方法はあるのでしょうか?

私のセットアップ:

  • PHP 5.4、5.5も利用可能
  • PHPユニット3.8
  • PHPUnit 1.3.1 の Selenium RC 統合
  • Selenium-server-standalone 2.33.0
  • ウィンドウズ 7 x64
  • JRE 7
4

2 に答える 2

0

うーん、それがあなたにとって役立つかどうかはわかりませんが、これを試してみることができます:

$this->timeouts()->implicitWait(20000);
于 2013-08-22T09:37:41.380 に答える