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
此代码循环获取屏幕截图,但我得到的是空白屏幕,因为每次都会打开一个新的 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