我知道可以通过扩展PHPUnit_Extensions_Selenium2TestCase
来截取屏幕截图,但是现在,我正在使用Facebook的php-webdriver,所以我只是使用PHPUnit_Framework_TestCase
进行扩展
无论如何只使用驱动程序和不扩展扩展程序截取屏幕截图?
感谢。
答案 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"))
);