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

标签 java windows continuous-integration selenium

我想要一个基于 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/

相关文章:

java - 静态 block 与静态方法 - 初始化静态字段

java - JSON Post 请求设计模式不太可靠

c# - 如何以编程方式从 .NET 注册表中删除 Windows 产品 key ?

php - 如何在 localhost 中为 XAMPP 创建有效的 SSL

azure - Azure DevOps 中的 Python CI 管道中的依赖项缓存?

java - 在 Android 应用游戏上玩游戏时使用背景音乐

java - 我想从两个 ComboBox 中选择 NAME 和 FILM 并将所选项目放入 H2 DB 中

windows - 如何更改 Windows Unicode 语言环境/语言的默认字体

svn - Cruise Control.Net 最佳实践

jenkins - 如何使用 Jenkins Pipeline 并选择电子邮件通知的触发器?