Selenium作为Windows服务运行,以捕获错误的屏幕截图

Grz*_*zki 12 java windows continuous-integration selenium

我想基于Selenium RC的自动化Web测试套件在遇到一些错误时截取页面的屏幕截图.测试套件是持续集成过程的一部分,技术上由作为Windows服务运行的CruiseControl执行.

selenium.captureScreenshot()调用该方法来触发实际的屏幕截图.我已经注册了一个JUnit RunListener来在任何测试失败时调用它.

问题是截图只是空白文件 - PNG文件全黑.尺寸为1440x900.

当从Eclipse手动运行相同的测试时,截图是可以的(虽然它们是整个桌面的截图而不是浏览器窗口,但这是一个不同的故事和一个小问题).所以我猜问题的原因是Selenium作为Windows服务运行.

当Selenium测试中发生异常时,如何获取页面截图?

使用的软件:

  • Windows 2003 Server
  • 硒1.0.1

Grz*_*zki 5

看起来有一个完全不同的答案.Windows服务(由TanukiSoftware Java Service Wrapper管理)以wrapper.ntservice.interactiveset为启动false.设置它true有帮助.最终截图包含真实的屏幕内容.

wrapper.ntservice.interactive详情请咨询.包装器代码的分析导致在启动Windows服务时设置[ SERVICE_INTERACTIVE_PROCESS](http://msdn.microsoft.com/en-us/library/ms683502 ( VS.85).aspx)标志.