Tôi đang cố gắng chụp ảnh màn hình của toàn bộ trình duyệt (ví dụ: với bất kỳ thanh công cụ, bảng điều khiển nào ...), không chỉ toàn bộ trang mã:Nhận cửa sổ xử lý (IntPtr) từ cửa sổ hiện tại của trình duyệt web Selenium 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");
}
đẹp lừa, btw, nhưng nếu có hai khác nhau trường hợp của FireFox với cùng một tiêu đề? – kseen
@kseen Bạn có thể thay thế [FirstOrDefault'] (http://msdn.microsoft.com/en-us/library/bb549039) bằng ['SingleOrDefault'] (http://msdn.microsoft.com/en-us/library/bb549274), để nếu có hai trình duyệt khác nhau có cùng tiêu đề, bạn sẽ nhận được một ngoại lệ. Nếu bạn đang ở trong một trường hợp thử nghiệm, bạn có thể khẳng định nó. –
@PaoloMoretti làm cách nào tôi có thể xử lý cửa sổ hiện tại (Cửa sổ hiện tại được mở bằng tay) mà không được mở bằng trình điều khiển nghĩa là tôi không thể sử dụng driver.getWindowHandle(); –