watir-webdriver黑屏截图

5
我正在使用watir-webdriver浏览我的网站,并在不同的浏览器中抓取截图。
有时,在IE中拍摄的屏幕截图大小正确,但全部变成黑色。同时运行的火狐测试看起来很好。
browser.driver.save_screenshot(screenshot_dir)

当我远程桌面连接到运行测试的计算机时,IE的截图再次显示正常。稍微离开远程桌面后,IE的截图再次变黑。

我在运行这些测试的是一个在EC2上运行的Windows Server实例。

3个回答

5
根据您的评论,远程访问机器可以暂时解决问题...请在该框上禁用屏幕保护程序。我不确定IE和FF上的截图功能是否有所不同,但测试更改值得一试。
编辑:我仍然觉得这与Windows /电源设置有关,因为您登录该框似乎有影响,但我不知道具体是什么。我在下面尝试了一种程序化方法 vvv。

好的直觉,看看这是否是问题将会很有趣。 - Chuck van der Linden
1
如果屏幕锁定,我也会遇到这个问题,所以我建议确保电源设置保持显示器开启。 - kinofrost
关闭屏幕保护是我尝试的第一件事... :( 不过这个想法不错。 - will

1
从你所说的来看,Windows系统似乎正在自动锁定,就像它应该做的那样。这可以解释为什么当你远程登录时截图正常,然后几分钟后屏幕保护程序启动并锁定系统后变黑。
如果Windows系统被锁定,截图将被遮蔽。这是Windows安全功能。
我很想知道FF是否真的能在锁定的系统上进行屏幕截图。

1
我开始将测试作为服务运行(不用登录机器数天)。FF测试仍然有效。 - will

0
这是我用来捕获屏幕截图的代码(Watir-Webdriver,Cucumber)。我使用远程 Windows XP VM 作为我的测试盒,并且在使用 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

我有,但我不确定OP。Win7 64位,XP 32位。 - adam reed
我特别指的是浏览器。在64位操作系统上,通常会有一个默认打开的32位IE版本和一个可以调用的64位版本。请参见“开始”=>“所有程序”,并查看列表顶部附近,您应该会看到两个版本。我的想法是,64位版本可能更适合查看您似乎只能在FF中看到的文件。 - Chuck van der Linden
哦,我明白了。不,那里没有任何区别。Aslak在这里的评论中讨论了这个问题:https://dev59.com/PlfUa4cB1Zd3GeqPMOEc - adam reed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接