2012-08-07 124 views
1

我有一套Selenium測試。例如,有時候,'assertIsElementPresent'將失敗。在某些情況下,這可能是因爲有人破壞了某些東西,並且UI點擊順序的結果是導致網站顯示錯誤頁面的錯誤。PhpUnit Selenium測試的錯誤處理

我該如何檢查這是否發生了每一次失敗,而不必實施對以下方法的調用?

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

意圖是簡單地通過電子郵件發送頁面的HTML源代碼,如果頁面顯示爲錯誤頁面。

回答

1

我看起來像你將不得不延長PHPUnit_Extensions_Selenium2TestCase類,並重載onNotSuccessfulTest()。在那裏添加你的代碼,並讓所有的測試用例擴展你的新類而不是PHPUnit_Extensions_Selenium2TestCase。確保在擴展版本中調用parent :: onNotSuccessfulTest()。

我還沒有測試過這個,但是從研究代碼,這應該得到你想要的。看起來stop()命令在會話__destruct()上發送,因此當您嘗試獲取屏幕截圖時,該會話仍應該處於活動狀態。