2016-03-28 16 views
0

32 bit IE sürücüsü ile selenyum kullanarak bir ekran görüntüsü almaya çalışırken bir sorun yaşıyorum.Selenium donma. Çözülebilir mi?

Yalnızca test ettiğim sayfa IE'de çalışıyor ve 64 sürücü çok yavaş olduğu için 32 bit sürücüsünü kullanıyorum.

Sahip olduğum sorun, çok uzun süren sayfalarda bu, Ekran görüntüsünün başarısız olmasını veya yalnızca sayfanın bir bölümünü ve diğer bölümünün de siyah olduğunu gösteriyor. Sorun bu değil, selenyum ekran görüntüsünü almazsa, IE'nin yanıt vermeyi durdurması ve kurtarılması gerekiyor. Bu olduğunda sürücü (belli ki) herhangi bir eleman bulamıyor ve test durumum başarısız oluyor.

Ben böyle bir şey yapıyorum: Ben ekran görüntüsü sorunumu take beeing olup olmadığını dert etmiyorum

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

başarısız olursa test case ile devam edemez olmasıdır. Explorer'ı çözmenin bir yolu var mı? ya da ekran görüntüsünün başarısız olmadığından emin olmak için (bir sayfanın ekran görüntüsü nedeniyle testimi gören ekran görüntüsünde siyahı görmeyi tercih ederim)

PS sürücüsü ile denedim. Bu çalışır (tarayıcıyı çözer) Selenyum ve tarayıcının sahip olduğu iletişimi öldürür. Çalışabilecek bağlantıyı yeniden kurmanın herhangi bir yolu varsa.

cevap

1

Tam sayfa yerine görünümün ekran görüntüsünü alırdım. Daha hızlı ve daha kararlı olacaktır:

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();