1

我有一套 Selenium 测试。例如,有时,“assertIsElementPresent”会失败。在某些情况下,这可能是因为有人破坏了某些东西,并且 UI 单击序列的结果是导致显示站点错误页面的错误。

如何检查每次失败是否都发生了这种情况,而无需在任何地方实现对以下方法的调用?

    $isErrorPage = $selenium->isElementPresent("id=siteErrorPage");
    if ($isErrorPage){
        $html = $selenium->getHtmlSource();
        //send the $html to devs, log it, etc.
    }

目的只是在页面被证明是错误页面时通过电子邮件发送正在显示的页面的 html 源代码。

4

1 回答 1

1

我看起来你必须扩展PHPUnit_Extensions_Selenium2TestCase类,并重载onNotSuccessfulTest()。在那里添加您的代码并使您的所有测试用例扩展您的新类而不是 PHPUnit_Extensions_Selenium2TestCase。确保在您的扩展版本中调用 parent::onNotSuccessfulTest()。

我没有对此进行测试,但是通过研究代码,这应该可以满足您的需求。看起来stop()命令是在会话__destruct()上发送的,因此当您尝试获取屏幕截图时会话应该仍然处于活动状态。

于 2012-08-12T17:18:30.577 回答