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 に答える