Byakku
Byakku

Reputation: 41

Phpunit - Selenium2 - Wait for page to be completely loaded

I'm using phpunit with the extension of selenium 2 (Selenium2TestCase), for checking an interface of my website. So my test page contains this :

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());
...
}

Then when I execute :

$> phpunit testSelenium.php

I have 2 html files of my page, before the sleep(5) and after :

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>

I don't understand why I have to put a sleep(5) to entirely load my page, did someone have an idea ?

And an other question what is the equivalent of clickAtAndWait (of PHPUnit_Extensions_SeleniumTestCase) for the Selenium2TestCase ?

Thanks in advance

Upvotes: 2

Views: 3370

Answers (1)

Byakku
Byakku

Reputation: 41

I found an answer. I'm looking for an HTML element in my page with a timeout and if it does not appear I wait with the function 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());
...
}

Upvotes: 2

Related Questions