2016-03-28 3 views
0

32ビットIEドライバでseleniumを使用してスクリーンショットを撮ろうとしているときに問題が発生しています。IEでのSelenium freezing Screenshot解散することは可能ですか?

私がテストしているページはIE上でのみ動作し、64ドライバは遅すぎるため、32ビットドライバを使用しています。

長すぎるページでは、これでスクリーンショットが失敗したり、ページの一部と黒い部分が残ります。これは、セレンがスクリーンショットを取れない場合、IEが応答を停止し、回復する必要があるという問題ではありません。これが起こると、ドライバは(明らかに)要素を見つけることができず、テストケースが失敗します。

私が何かやっている:だから私はスクリーンショットが私の問題は、それが失敗した場合、私はテストケースを続けることができないということであるテイクをbeeingてされているかどうかを心配していないよ

try{ 
    Screnshot ss = ((ITakeScreenshot)driver).GetScreenshot(); 
    ss.SaveAdFile("path", ImageFormat.Png); 
}catch{ 
    Log.Error("And Error happened"); 
} 

を。エクスプローラを解凍する方法はありますか?または、スクリーンショットが失敗しないことを確認する(私は、スクリーンショットが黒すぎてページのスクリーンショットが大きすぎるためにテストが失敗するのが好きです)

PS私はdriver.Disposeこれは動作します(ブラウザのフリーズ解除)、セレンとブラウザが持つ通信を停止します。動作する可能性のある接続を再確立する方法があれば。

答えて

1

私はフルページの代わりにビューポートのスクリーンショットを撮ります。より速く安定します:

DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); 
caps.setCapability("ie.enableFullPageScreenshot", false); 

WebDriver driver = new InternetExplorerDriver(caps); 
driver.get("http://stackoverflow.com/"); 

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

driver.quit(); 
関連する問題