我想要一个基于 Selenium RC 的自动化 Web 测试套件,以便在遇到某些错误时对页面进行屏幕截图。测试套件是持续集成过程的一部分,技术上由作为 Windows 服务 运行的 CruiseControl 执行。
调用selenium.captureScreenshot()
方法触发实际截图。我已经注册了一个 JUnit RunListener
以在任何测试失败时调用它。
问题是屏幕截图只是空白文件 - PNG 文件完全是黑色的。尺寸为 1440x900。
当从 Eclipse 手动运行相同的测试时,屏幕截图是可以的(虽然它们是整个桌面的屏幕截图而不是浏览器窗口,但这是一个不同的故事和一个小问题)。所以我猜问题的原因是 Selenium 作为 Windows 服务运行。
Selenium测试出现异常时如何截取页面?
使用的软件:
- Windows 2003 服务器
- Selenium 1.0.1
最佳答案
看起来有一个完全不同的答案。 Windows 服务(由 TanukiSoftware Java Service Wrapper 管理)以 wrapper.ntservice.interactive
设置为 false
启动。将其设置为 true
很有帮助。最终屏幕截图包含真实的屏幕内容。
咨询wrapper.ntservice.interactive
了解详情。包装器代码的分析导致 [SERVICE_INTERACTIVE_PROCESS
]( http://msdn.microsoft.com/en-us/library/ms683502(VS.85).aspx) 标志在启动 Windows 服务时被设置。
关于java - Selenium 作为 Windows 服务运行以截取错误的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1260106/