使用selenium.captureScreenshot获取黑色图像

时间:2010-02-26 00:51:15

标签: selenium hudson testng

我正在使用testng执行selenium测试,这些测试是通过hlenson(使用ssh连接)在Selenium RC的远程系统上启动的。远程系统是安装了MKS Toolkit的windows xp,因此是ssh。测试不作为Windows服务执行。

我尝试过使用captureScreenshot和captureEntirePageScreenshot方法。第一个总是产生黑色图像。第二个创建正确的屏幕截图,但它只适用于Firefox,我们的测试通常会传递Firefox并在其他浏览器中失败,因此捕获其他浏览器(主要是IE和Safari)的屏幕截图至关重要。测试是并行运行的,同时打开许多浏览器窗口。我不确定这是否是导致问题的原因。任何想法都将不胜感激。

3 个答案:

答案 0 :(得分:2)

不幸的是,Selenium中的屏幕截图从一开始就存在问题,而不是Firefox的浏览器。这是我们Selenium开发人员一直在努力纠正的问题。

最新的工作一直在更新Snapsie在IE中工作。 http://blog.codecentric.de/en/2010/02/remote-screenshots-mit-selenium-und-dem-robot-framework/上有一篇博客文章解释了发生的事情。

我注意到如果屏幕未激活,即屏幕保护程序已启动,则可以生成黑屏幕截图。

编辑:

我只是想了想。您始终可以Castro运行视频录制测试,然后观看播放。这是SauceLabs用来在云中运行Selenium的东西。

答案 1 :(得分:1)

为此编写一个方法,并在需要截取屏幕时调用它。使用已在selenium中使用的java.awt包。例如,check this site

答案 2 :(得分:1)

设置Windows自动登录后,启动过程不是Windows服务,我找到了如何通过创建断开RDP的批处理文件来解决IEDriverServer.exe的远程桌面带黑屏幕截图问题,而不是使用常规X按钮关闭RDP会话:

%windir%\system32\tscon.exe %SESSIONNAME% /dest:console

在此处查看更多详情: https://stackoverflow.com/a/24529629/658497

(虽然,我希望有一种方法可以将它作为默认操作运行,当使用X Windows按钮终止RDP会话时)。