使用Selenium Webdriver和PHPUnit截图

时间:2014-07-04 09:46:25

标签: php selenium phpunit

我知道可以通过扩展PHPUnit_Extensions_Selenium2TestCase来截取屏幕截图,但是现在,我正在使用Facebook的php-webdriver,所以我只是使用PHPUnit_Framework_TestCase进行扩展

无论如何只使用驱动程序和不扩展扩展程序截取屏幕截图?

感谢。

3 个答案:

答案 0 :(得分:5)

$driver->takeScreenshot('/path/to/image.png');

答案 1 :(得分:1)

我找到了这样的解决方案,以便在失败时制作屏幕截图:

index.ejs

你很久以前问过这个问题,但希望它能帮助别人:)

答案 2 :(得分:0)

@a_sarana所说的话。在至少=> 5的版本中,您可以使用phpunit方法:

$this->hasFailed();

示例

if($this->hasFailed())
{
    $selenium->takeScreenshot($filename);   
}

这假定您不关心发生的故障类型。

旁注,如果最终得到空白屏幕截图,则可能需要等待页面加载。我花了大约半天的时间来调试它。

示例

sleep(1); // one second

// wait max of 2 sec check every 1/10 sec until element is viable
$driver->wait(2, 1000)->until(
    WebDriverExpectedCondition::visibilityOfElementLocated(WebDriverBy::id("elementID")) 
);