硒在IE屏幕截图上冻结.解冻是可能的



我在尝试使用带有32位IE驱动程序的selenium进行屏幕截图时遇到问题。

我正在测试的页面只适用于IE,我使用32位驱动程序,因为64位驱动程序太慢了。

我遇到的问题是,在一些太长的页面中,这会导致屏幕截图失败,或者只是将页面的一部分变成黑色。这不是问题所在,问题是如果selenium未能拍摄屏幕截图,IE将停止响应,需要恢复。当这种情况发生时,驱动程序(显然)找不到任何元素,我的测试用例失败了。

我正在做一些类似的事情:

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

所以我不担心屏幕截图是否正在进行,我的问题是,如果它失败了,我就无法继续测试用例。有没有办法解冻探险家?或者确保屏幕截图不会失败(我更喜欢在屏幕截图中看到黑色,因为页面截图太大,所以我的测试失败)

p.S我试着和司机谈过。Dispose(),即使它起作用(解冻浏览器),它也会破坏Selenium和浏览器之间的通信。如果有任何方法可以重新建立可能有效的连接。

我会截图视口,而不是整页。它将更快、更稳定:

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

最新更新