4

Selenium Webdriver を使用してスクリーンショットを撮ろうとしています。

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(File_Location));

ここでの問題は、ウィンドウのサイズを設定しても、IE と Firefox のスクリーンショットのサイズが異なることです。

すべてのブラウザで同じサイズのスクリーンショットを取得する方法を教えてください。

4

2 に答える 2

1

できません。

さまざまなドライバーがさまざまな方法でスクリーンショットを実装します。IEDriver は、IE のバージョンに基づいてさまざまなサイズを生成します。

これについては一連のバグが報告されています。これはおそらく、知っておく必要があるすべてのことを示しており、この回答を検証します。

https://code.google.com/p/selenium/issues/detail?id=5332&can=1&q=screenshot%20size&colspec=ID%20Stars%20Type%20Status%20Priority%20Milestone%20Owner%20Summary

具体的には

プロジェクト メンバー #3 james.h....@gmail.com現在の WebDriver API のスクリーンショットは、ページ全体のスクリーンショットを意味します。他のブラウザーとは異なり、IE でページ全体をレンダリングするには、ページ全体を描画するのに十分な大きさの IE ウィンドウを用意する必要があります。つまり、ウィンドウのサイズを変更します。IE の場合、サイズ変更を行うか、ページ全体のスクリーンショットを撮らないようにする必要があります。これは IE の制限です。IE ドライバーがこれを回避するためにできることは何もありません。サイズを変更せずに、表示されているビューポートのみのスクリーンショットを撮りたい場合は、Windows API の PrintWindow 関数を使用できます。 ステータス: WorkingAsIntended

于 2013-04-05T15:28:57.513 に答える