使用Selenium ITakeScreenshot从IE窗口返回黑屏



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

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

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

我曾考虑使用矩形/位图来捕获整个屏幕,但它似乎在System.Windows.Forms命名空间中,因此我无法在程序集类型ClassLibrary中使用它。

有什么想法吗?

如何使用selenium网络驱动程序启动IE?你使用的是什么版本的IE网络驱动程序?我在此页面中使用推荐版本的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:imagetest.png");
}
}
}

我取出

driver.Navigate().GoToUrl(StartURL);

并替换为

options.InitialBrowserUrl = StartURL;

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

最新更新