一尘不染

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

selenium

我希望基于Selenium RC的自动化Web测试套件可以在遇到某些错误时为页面截图。测试套件是持续集成过程的一部分,从技术上讲,它是由作为
Windows服务 运行的CruiseControl执行的。

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

问题是屏幕截图只是 空白文件 -PNG文件完全是黑色的。尺寸为1440x900。

从Eclipse手动运行相同的测试时,屏幕快照可以(尽管它们是整个桌面的屏幕快照,而不是浏览器窗口的屏幕快照,但这是一个不同的故事,是一个小问题)。所以我想问题的原因是Selenium作为Windows服务运行。

当selenium测试中发生异常时,如何截取页面的屏幕截图?

使用的软件:

  • Windows 2003服务器
  • selenium1.0.1

阅读 287

收藏
2020-06-26

共1个答案

一尘不染

似乎有一个完全不同的答案。Windows服务(由TanukiSoftware Java Service
Wrapper
管理)已启动,其wrapper.ntservice.interactive设置为false。将其设置为true有帮助。最终,屏幕截图包含真实的屏幕内容。

wrapper.ntservice.interactive详情请参阅。对包装器代码的分析导致启动Windows服务时设置了[
SERVICE_INTERACTIVE_PROCESS](http://msdn.microsoft.com/zh-
cn/library/ms683502 (
VS.85).aspx)标志。

2020-06-26