我有一个Class Library.dll,其中包含一些用C#/ Selenium编写的SpecFlow测试,当我使用标准代码捕获带有硒类的屏幕截图时,文件只是黑色窗口?!
我已经运行了以前的内置解决方案和.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;
现在正在捕获有效的屏幕截图!