我有一套Selenium测试。有时,例如,'assertIsElementPresent'将失败。在某些情况下,这可能是因为有人破坏了某些内容,并且UI点击序列的结果是一个错误,导致显示该网站的错误页面。
如何检查每次发生的故障是否已经发生,而无需在任何地方实施对以下方法的调用?
$isErrorPage = $selenium->isElementPresent("id=siteErrorPage");
if ($isErrorPage){
$html = $selenium->getHtmlSource();
//send the $html to devs, log it, etc.
}
如果页面已成为错误页面,则意图只是通过电子邮件发送正在显示的页面的html源。
答案 0 :(得分:1)
我看起来你必须扩展PHPUnit_Extensions_Selenium2TestCase类,并重载onNotSuccessfulTest()。在那里添加您的代码并使所有测试用例扩展您的新类而不是PHPUnit_Extensions_Selenium2TestCase。确保在扩展版本中调用parent :: onNotSuccessfulTest()。
我没有对此进行测试,但是通过研究代码,应该为您提供所需的内容。看起来stop()命令在会话__destruct()上发送,因此当您尝试获取屏幕截图时,会话仍应处于活动状态。