【发布时间】:2016-09-09 16:58:14
【问题描述】:
我正在尝试捕获整个浏览器屏幕的屏幕截图(例如,使用任何工具栏、面板等),而不仅仅是整个页面,所以我得到了以下代码:
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");
}
【问题讨论】:
-
遗憾的是,Selenium 的人们拒绝不实现获取本机窗口句柄。几年前我写了一个功能请求,但被拒绝了。直到 2020 年,这个功能才被实现,尽管它并不复杂(至少在 Windows 上。在 Linux 或 Mac 上可能是不可能的,它们的 GUI 比 Windows 更原始,我不知道)
标签: c# .net winapi selenium guid