C#:如何最小化IE获取背景截图

C#: How to minimize IE to get a screenshot of background

此代码循环获取屏幕截图,但我得到的是空白屏幕,因为每次都会打开一个新的 window。

如何最小化新 window 以便获取背景的屏幕截图 window?

static string TakeScreenshot(string _getScreenShotName)
        {

        try
        {
            IWebDriver driver = new InternetExplorerDriver(@"C:\myCSharp\mySelenium\mySelenium\");
            Screenshot sss = ((ITakesScreenshot)driver).GetScreenshot();
            sss.SaveAsFile(string.Format("{0}_{1:yyyy-MM-dd_HH-mm-ss}.jpeg", _getScreenShotName, DateTime.Now), System.Drawing.Imaging.ImageFormat.Gif);
            System.Console.WriteLine(_getScreenShotName);
            return _getScreenShotName;
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            throw;
        }
       }

你应该使用

//this will maximize the browser and also helps you to set focus on actual browser not on IEDriverServer exe
IWebDriver driver = new InternetExplorerDriver(@"C:\myCSharp\mySelenium\mySelenium\");
driver.Navigate().GoToUrl("some url");
driver.Manage().Window.Maximize();

不幸的是,除非使用本机 C# 机制,否则目前无法最小化浏览器(如果您希望这样做)。

参考this

正如'Pierre-Luc Pineault'在评论中已经提到的,

在截图之前先使用驱动程序导航到一个站点(如下所示)。

IWebDriver driver = new InternetExplorerDriver(@"C:\myCSharp\mySelenium\mySelenium\");
driver.get("http://www.google.com");
Screenshot sss = ((ITakesScreenshot)driver).GetScreenshot();
sss.SaveAsFile(string.Format("{0}_{1:yyyy-MM-dd_HH-mm-ss}.jpeg", _getScreenShotName, DateTime.Now), System.Drawing.Imaging.ImageFormat.Gif);
System.Console.WriteLine(_getScreenShotName);
return _getScreenShotName;

您不能使用驱动程序的GetScreenshot 方法进行桌面截图。如果那是你想做的,请参考这个 answer