2

私のウェブサイトのインターフェースをチェックするために、セレン2(Selenium2TestCase)の拡張機能を備えたphpunitを使用しています。だから私のテストページにはこれが含まれています:

testDisplay()
{
...
file_put_contents('/home/toto/www/screenshots/before.html', $this->source());
sleep(5);
file_put_contents(/home/toto/www/screenshots/after.html', $this->source());
$this->assertContains('toto42', $this->source());
...
}

次に、実行すると:

$> phpunit testSelenium.php

sleep(5) の前と後に、ページの 2 つの html ファイルがあります。

before.html :

<META charset="utf-8"/>
<META content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<TITLE>Test</TITLE>

<LINK href="/css/style.css" rel="stylesheet"/>
<LINK href="/css/bootstrap.css" rel="stylesheet"/>
<SCRIPT src="/js/jquery-1.7.1.min.js" type="text/javascript"/>
</HEAD></HTML>

after.html:

<META charset="utf-8"/>
<META content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<TITLE>Test</TITLE>

<LINK href="/css/style.css" rel="stylesheet"/>
<LINK href="/css/bootstrap.css" rel="stylesheet"/>
<SCRIPT src="/js/jquery-1.7.1.min.js" type="text/javascript"/>
</HEAD>
<BODY>
...
toto42
...
</BODY>

ページを完全にロードするために sleep(5) を入れなければならない理由がわかりません。

Selenium2TestCase の (PHPUnit_Extensions_SeleniumTestCase の) clickAtAndWait に相当するものは何ですか?

前もって感謝します

4

1 に答える 1

2

答えが見つかりました。ページ内でタイムアウトのある HTML 要素を探しています。表示されない場合は、implicitWait(); 関数で待機します。

testDisplay()
{
...
//I use 25000 for the timeout but anything else works too it depends on your loading page 
$this->timeouts()->implicitWait(25000);
$this->assertContains('toto42', $this->source());
...
}
于 2013-06-25T09:28:24.013 に答える