9

chrome ドライバーを使用してページ全体のスクリーンショットを作成する必要がありますが、部分的に作成されます。

File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

スクリーンショットは、下に正しい情報と大きな黒い領域が表示された長方形のように見えます。

4

4 に答える 4

8

これは既知のバグです: https://code.google.com/p/chromedriver/issues/detail?id=294 (Chrome ドライバーのみ、Firefox ドライバーは正常に動作します)

于 2013-07-26T15:37:20.050 に答える
1

使用する必要があります

html2canvas.js を読み込む

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://github.com/niklasvh/html2canvas/releases/download/0.5.0-alpha1/html2canvas.js';
document.head.appendChild(script);

このコマンドでページ全体のスクリーンショットをダウンロードするコマンド

html2canvas(document.body).then(function(canvas) {
    var a = document.createElement('a');
        // toDataURL defaults to png, so we need to request a jpeg, then convert for file download.
        a.href = canvas.toDataURL("image/jpeg").replace("image/jpeg", "image/octet-stream");
        a.download = 'somefilename.jpg';
        a.click();
})

javascriptexecutor を使用してこのスクリプトを呼び出すと、イメージのダウンロードがデフォルトのダウンロード場所に自動的に起動し、セレンの javascriptexecutor コマンドの入力引数でファイル名を変更できるため、目的の結果を得ることができます。

お役に立てれば!

于 2016-01-22T14:26:54.753 に答える
0

これが古いスレッドであることは知っていますが、Selenium の ITaksScreenshot の使用法を示したかったのです。

using OpenQA.Selenium;
using System.Drawing.Imaging;

((ITakesScreenshot)driver).GetScreenshot().SaveAsFile(@"YourImageNameHere.png", ImageFormat.Png);
于 2017-01-16T19:15:20.760 に答える