2011-11-01 52 views
5

我正在使用watir-webdriver浏览我的网站并在不同的浏览器中抓取屏幕截图。watir-webdriver黑屏截图

有时在IE浏览器中截取的屏幕截图显示正确的大小,但颜色完全是黑色的。同时运行的firefox测试看起来很好。

browser.driver.save_screenshot(screenshot_dir) 

一旦我远程桌面运行测试的计算机的IE浏览器的屏幕截图再次看起来不错。离开远程桌面后,IE屏幕截图再次变黑。

我在运行在ec2上的Windows Server实例上运行这些测试。

回答

5

根据您的评论,远程访问该机器解决了一小会儿的问题...禁用该框上的屏幕保护程序。我不确定IE和FF的截图功能如何(如果有的话)有所不同,但值得花些时间来测试这些变化。

编辑:我仍然觉得它的窗口/电源设置相关,当你登录框显示有效果,但我不知道具体可能是什么。我在vvv下面尝试了一个编程方法。

+0

好的直觉,看看这是否是问题会很有趣 –

+1

这个问题发生在我身上,如果屏幕锁定了,所以我还要确保将电源设置设置为保持显示器打开。 – kinofrost

+0

关闭屏幕保护程序是我第一次尝试...... :( 好主意,虽然 – will

0

这里是我用来捕捉屏幕截图的代码(Watir-Webdriver,Cucumber)。我使用远程Windows XP虚拟机作为我的测试盒,并没有遇到使用Firefox或Internet Explorer的问题。

我们确实发现,当您使用嵌入式屏幕截图查看日志时,它在IE中似乎不起作用 - 因此您必须使用Firefox进行查看。这是base64,所以似乎没有这样的合乎逻辑的原因。

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

你试过了32位和64位版本的IE? –

+0

我有,但我不确定OP。Win7 64位,XP 32位 –

+0

我指的是浏览器,在64位操作系统上,你通常会有一个32位版本的IE默认打开,还有一个64位版本可以调用。开始=>所有程序,看看列表顶部附近,你会看到两个版本都显示。我的想法是,64位版本可能会更好地查看你只能在FF –

1

从你所说的话,它听起来像Windows系统自动锁定,就像它应该。这可以解释为什么在远程进入时屏幕截图能够正常工作,而当屏幕保护程序启动并锁定系统时,几分钟后会变黑。

如果Windows系统被锁定,屏幕截图将会变黑。这是Windows安全功能。

我很想知道FF是否真的在锁定的系统上执行屏幕截图。

+1

我开始将测试作为服务运行(不会在几天内登录到计算机)。 FF测试仍然有效。 – will