2011-11-01 22 views
5

Sto usando watir-webdriver per navigare nel mio sito web e catturare schermate in diversi browser.watir-webdriver black screenshot

A volte gli screenshot acquisiti in IE risultano della giusta dimensione, ma colorati interamente in nero. I test di Firefox che vengono eseguiti allo stesso tempo sembrano buoni.

browser.driver.save_screenshot(screenshot_dir) 

Una volta ho desktop remoto al computer che esegue i test gli screenshot di IE sembrano a posto di nuovo. Un po 'dopo aver lasciato il desktop remoto, gli screenshot di IE diventano di nuovo neri.

Sto eseguendo questi test su un'istanza di Windows Server in esecuzione su ec2.

risposta

5

Sulla base del tuo commento che l'accesso remoto alla macchina risolve il problema per un po '... disabilita lo screensaver su quella casella. Non sono sicuro di come differiscano le funzioni di screenshot su IE e FF, ma vale la pena impiegare il tempo necessario per testare la modifica.

Modifica: ho ancora la sensazione che le impostazioni relative a Windows/Power siano correlate al momento in cui l'accesso alla casella sembra avere un effetto, ma non so cos'altro potrebbe essere. Ho provato un approccio programmatico sotto vvv.

+0

buon istinto, sarà interessante vedere se questo è il problema –

+1

Questo problema mi succede se lo schermo si blocca, quindi mi piacerebbe anche lanciarlo garantendo che le impostazioni di alimentazione siano impostate per tenere acceso il monitor. – kinofrost

+0

Lo spegnimento dello screensaver è stata la prima cosa che ho provato ... :( Buona idea anche se – will

0

Ecco il codice che sto usando per catturare schermate (Watir-Webdriver, Cucumber). Uso le macchine virtuali Windows XP remote per le mie caselle di test e non ho riscontrato il problema utilizzando Firefox o Internet Explorer.

Abbiamo scoperto che quando si visualizza il registro con lo screenshot incorporato, non sembra funzionare in IE, quindi è necessario utilizzare Firefox per la visualizzazione. È base64, quindi non sembra esserci una ragione logica per questo.

After do |scenario| 
    if scenario.failed? 
     encoded_img = @browser.driver.screenshot_as(:base64) 
     embed("data:image/png;base64,#{encoded_img}", 'image/png') 
    end # 
end 
+0

hai provato entrambe le versioni a 32 bit e 64 bit di IE? –

+0

Ho, ma non sono sicuro dell'OP. 64 bit, XP 32 bit. –

+0

Mi riferivo in modo specifico al browser: su un sistema operativo a 64 bit di solito è disponibile una versione a 32 bit di IE che viene aperta per impostazione predefinita e una versione a 64 bit che è possibile richiamare. Start => Tutti i programmi e guarda vicino alla parte superiore dell'elenco, dovresti vedere entrambe le versioni indicate. Il mio pensiero era che la versione a 64 bit avrebbe funzionato meglio per visualizzare il file che sembra essere visibile solo in FF –

1

Da quello che stai dicendo, sembra che il sistema Windows si blocchi automaticamente, come dovrebbe. Questo spiegherebbe il motivo per cui gli screenshot funzionano bene quando si esegue il remote-in, e poi passano al nero diversi minuti dopo, quando lo screensaver entra in azione e blocca il sistema.

Se il sistema di Windows è bloccato, le schermate sono oscurate. Questa è una funzionalità di sicurezza di Windows.

Sarei curioso di sapere se FF esegue realmente le catture di schermate su un sistema bloccato.

+1

Ho iniziato a eseguire i test come servizio (non accedere al computer per giorni). I test FF funzionano ancora. – will