使用selenium捕获黑色图像。捕捉屏幕截图
我正在使用testng执行selenium测试,这是通过selenium RC通过hudson(使用ssh连接)在远程系统上启动的。远程系统是安装了MKS Toolkit的windows xp,因此是ssh。测试不作为Windows服务执行。使用selenium捕获黑色图像。捕捉屏幕截图
我试过使用captureScreenshot和captureEntirePageScreenshot方法。第一个总是产生一个黑色的图像。第二个创建正确的屏幕截图,但它只适用于Firefox,我们的测试通常通过Firefox并在其他浏览器中失败,因此捕获其他浏览器(主要是IE和Safari)的屏幕截图至关重要。测试并行运行,同时打开许多浏览器窗口。如果这是造成问题的原因,我不确定。任何想法将不胜感激。
Selenium中的不幸屏幕截图从非Firefox浏览器开始就存在问题。这是我们Selenium开发人员一直在努力纠正的问题。
最新的工作已经更新Snapsie在IE中工作。有一个博客文章http://blog.codecentric.de/en/2010/02/remote-screenshots-mit-selenium-und-dem-robot-framework/解释发生了什么。
我注意到,如果屏幕没有激活,即屏幕保护程序已经踢入,它可以可以产生黑色的截图。
编辑:
我只是有一个想法。您始终可以运行Castro来录制您的测试视频,然后观看它播放。这是SauceLabs用来在云中运行Selenium的东西。
设置的Windows自动登录和启动过程并不像Windows服务后,我发现了如何通过创建断开RDP一个批处理文件来解决与黑色屏幕截图的远程桌面 IEDriverServer.exe的问题, ,而不是用常规的X按钮关闭RDP会话:
%windir%\system32\tscon.exe %SESSIONNAME% /dest:console
看到更多细节在这里: https://stackoverflow.com/a/24529629/658497
(虽然,我宁愿有一种方式来运行它作为默认操作,当用X Windows按钮终止RDP会话时)。
谢谢指点。看起来像在非自动执行中使用非Firefox浏览器的屏幕截图没有解决方案(当用户没有主动登录时)。这不好。 我会检查卡斯特罗... – Lidia 2010-03-03 01:12:54
嗯......卡斯特罗是一个蟒蛇图书馆。我们不使用python。我们的测试是用java(testng)编写的。 – Lidia 2010-03-03 01:15:39
你可以使用jython(Java的Python实现)调用它。我只使用过IronPython(我是.NET,并且让它工作) – AutomatedTester 2010-03-03 10:50:51