使用 Selenium ITakeScreenshot returns 来自 IE Window 的黑屏?

Using Selenium ITakeScreenshot returns Black Screen from IE Window?

我有一个 Class Library.dll 和一些用 C# / Selenium 编写的 SpecFlow 测试,当我使用标准代码捕获带有 selenium class 的屏幕截图时,文件只是黑色 window ?!

我有 运行 以前构建的解决方案和 .dll,它们使用相同的驱动程序版本 (Selenium.IE32) 和浏览器版本,并且可以很好地捕获屏幕...我正在使用以下代码。

   ((ITakesScreenshot)driver).GetScreenshot().SaveAsFile(ScreenName, ScreenshotImageFormat.Png);

我考虑过使用 Rectangle/Bitmap 来捕获整个屏幕,但这似乎在 System.Windows.Forms 命名空间内,所以我不能在程序集类型 ClassLibrary 中使用它。

有什么想法吗?

如何使用 selenium webdriver 启动 IE?您使用的是哪个版本的 IE webdriver?我使用的是this page中推荐的IEDriver版本,使用如下代码。它对我很有效:

using OpenQA.Selenium;
using OpenQA.Selenium.IE;

namespace ecwebdriver
{
    public class webdriver
    {
        static void Main(string[] args)
        {
            IWebDriver driver;
            driver = new InternetExplorerDriver(@"D:\webdriver"); //here you should change to your webdriver path
            driver.Navigate().GoToUrl("http://www.bing.com");
            ((ITakesScreenshot)driver).GetScreenshot().SaveAsFile(@"D:\image\test.png");
        }
    }
}

我拿出来了

driver.Navigate().GoToUrl(StartURL);

并替换为

options.InitialBrowserUrl = StartURL;

现在正在捕获有效的屏幕截图!