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

问题描述 投票:0回答:2

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

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

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

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

任何想法?

selenium internet-explorer webdriver screenshot
2个回答
0
投票

您如何使用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");
        }
    }
}

0
投票

我拿出

driver.Navigate().GoToUrl(StartURL);

并替换为

options.InitialBrowserUrl = StartURL;

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

© www.soinside.com 2019 - 2024. All rights reserved.