Estoy tratando de capturar una captura de pantalla de toda la pantalla del navegador (por ejemplo, con cualquier barra de herramientas, paneles, etc.) no solo una página completa, así que estoy código:Obtener Window handle (IntPtr) de Selenium webdriver ventana actual 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");
}
Buen truco, por cierto, pero si hay dos diferentes instancias de Firefox con el mismo título? – kseen
@kseen Puede reemplazar ['FirstOrDefault'] (http://msdn.microsoft.com/en-us/library/bb549039) con [' SingleOrDefault'] (http://msdn.microsoft.com/en-us/library/bb549274), de modo que si hay dos aplicaciones de navegador diferentes con el mismo título, obtendrá una excepción. Si está en un caso de prueba, puede afirmarlo. –
@PaoloMoretti ¿cómo puedo obtener el control de la ventana actual (ventana existente que se abre manualmente) que no está abierto por el controlador significa que no puedo usar driver.getWindowHandle(); –