Selenium 2(webdriver):截取屏幕截图返回黑色图像

Ger*_*ald 7 c# asp.net internet-explorer screenshot selenium-webdriver

我在ASP.NET网站中使用Selenium 2(Webdriver)来构建服务,用户可以在其中输入他们的URL并获取使用不同浏览器制作的页面截图.

我的页面是Windows Server 2008 R2上的hostet.

截图与FirefoxDriver完美的作品.但是当我使用时InternetExplorerDriver,我只得到一个空的黑色文件.

该应用程序以管理员身份运行 - 因此不存在权限问题.

我的代码:

// Opening the Browser
var ieCapabilities = DesiredCapabilities.InternetExplorer();
ieCapabilities.SetCapability(InternetExplorerDriver.IntroduceInstabilityByIgnoringProtectedModeSettings, true);
var browserIe = new InternetExplorerDriver(ieCapabilities);
browserIe.Navigate().GoToUrl("http://www.google.com");
// Screenshot
var dir = Server.MapPath("/screenshots/");
browserIe.GetScreenshot().SaveAsFile(dir + "Filename.png", ImageFormat.Png);
browserIe.Close();
Run Code Online (Sandbox Code Playgroud)

为什么我的文件是黑色的任何想法?谢谢!

小智 6

您的代码可能没有任何问题.虽然,我正在使用Java,所以我无法确定.

我和IE有同样的问题,而FF和Chrome工作得很好.

这篇文章表明,通过远程桌面连接启动Selenium Server可能会导致问题.

其他一些帖子表明屏幕保护程序可能与它有关.

我刚刚尝试打开远程桌面连接,它解决了黑屏问题.此外,通过VNC登录似乎也有效,这使我了解到Windows终止远程桌面连接后锁定屏幕同时使用VNC时解锁的理论.

这篇文章建议在屏幕被锁定时禁用屏幕截图是Windows安全功能.