我试图捕获整个浏览器屏幕(例如任何工具栏,面板等)的屏幕截图,不仅整个页面,所以我得到了这个代码:从Selenium webdriver的当前窗口获取窗口句柄(IntPtr)GUID
using (FirefoxDriver driver = new FirefoxDriver())
{
driver.Navigate().GoToUrl(url);
ScreenCapture sc = new ScreenCapture();
// How can I find natural IntPtr handle of window here, using GUID-like identifier returning by driver.currentWindowHandle?
Image img = sc.CaptureWindow(...);
MemoryStream ms = new MemoryStream();
img.Save(ms, ImageFormat.Jpeg);
return new FileStreamResult(ms, "image/jpeg");
}
好的技巧,顺便说一句,但如果有两个不同具有相同标题的FireFox实例? – kseen 2012-07-20 10:47:22
@kseen您可以用['SingleOrDefault']替换['FirstOrDefault'](http://msdn.microsoft.com/zh-cn/library/bb549039)(http://msdn.microsoft.com/zh-cn//library/bb549274),这样如果有两个具有相同标题的浏览器实例,则会得到一个异常。如果你在测试案例中,你可以断言它。 – 2012-07-20 11:29:30
@PaoloMoretti我怎样才能得到当前窗口(手动打开的现有窗口),这是不是由驱动程序打开意味着我无法使用driver.getWindowHandle(); – 2015-10-10 09:21:46