0

セレンWebドライバーをロボットフレームワークと一緒に使用していますが、次の問題があります。

テストが失敗するたびにスクリーンショットを作成し、このスクリーンショットをlog.htmlファイルにエクスポートしたいと思います。

スクリーンショットを作成するのは非常に簡単です。

    String path;
    try {
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File source = ((TakesScreenshot) augmentedDriver)
                .getScreenshotAs(OutputType.FILE);
        path = "./screenshots/" + source.getName();
        FileUtils.copyFile(source, new File(path));
    } catch (IOException e) {
        path = "Failed to capture screenshot: " + e.getMessage();
    }

しかし、問題はスクリーンショットをhtmlとしてエクスポートすることです。

セレンRCでは、スクリーンショット付きのhtml部分は次のようになります。

<tbody>
    <tr>
        <td class="time">15:25:44.968</td>
        <td class="fail level">FAIL</td>
        <td class="message">Value of text field 'xpath=//input' should have been '' but was 'VpomRihh3Xa' Screenshot: </td>
    </tr>
    <tr>
        <td colspan="3">
            <img src="./screenshots/screenshot175324738088103861.png">
        </td>
    </tr>
</tbody>

さて、これは簡単に実装でき、captureScreenshot()関数を次のように拡張できるはずだと思いました。

private String captureScreen() {

    String path;
    try {
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File source = ((TakesScreenshot) augmentedDriver)
                .getScreenshotAs(OutputType.FILE);
        path = "./screenshots/" + source.getName();
        FileUtils.copyFile(source, new File(path));
    } catch (IOException e) {
        path = "Failed to capture screenshot: " + e.getMessage();
    }

    StringBuilder builder = new StringBuilder();

    builder.append("\n<tr><td colspan=\"3\"><img src=\"").append(path).append("\"></tr></td>");

    System.out.println(builder.toString());

    return "";

}

しかし、問題は、この実装が私のニーズに受け入れられないことです。見た目は良さそうですが、タグ内のテキストだけが表示され、画像として表示されません。

それをよりよく理解するために、ここに私が得たものからのスクリーンショットがあります:

http://gyazo.com/5d7dec1e05443786b5d390054edad3e8 (評判が低いため画像を投稿できません)

だから問題は-スクリーンショットをロボットフレームワークのlog.htmlファイルにインポートする方法は?

4

1 に答える 1

1

次の例を使用してみてください。

 System.out.println("*HTML* <img src=\"testScreenshot.png\" width=\"800px\">");
于 2012-09-27T11:59:12.673 に答える