当前位置: 首页 > 面试题库 >

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

慎峻
2023-03-14
问题内容

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

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

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

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

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

使用的软件:

  • Windows 2003服务器
  • selenium1.0.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)标志。



 类似资料:
  • 我正在开发一个Android应用程序,这个应用程序是一个家长顾问应用程序,它将安装在父母的手机和孩子的手机上。我的问题是,在男孩不知情的情况下,如何从他的手机中截图?

  • 当我运行上面的代码时,我得到了错误,我的python版本是2.7。硒含量为3.1 代码错误 [0315/220804.111:ERROR:angle_platform_impl.cc(33)]angle Display::initialize err或5:DXGI 1.2需要显示给另一个进程拥有的HWNDs。[0315/220804.111:错误:gl\u surface\u egl.cc(646

  • 我只需要当前视口的屏幕截图,特别是滚动位置。基本上是当前Chrome驱动程序所做的。 据我所知,这似乎是完全可能的,但出于某种原因,屏幕截图命令总是努力拍摄完整的文档屏幕截图。事实上,IE驱动程序拍摄多个视口快照,然后将它们缝合在一起。 我使用的是Ruby webdriver,但我看不到任何东西,只能截取视口的屏幕。可能吗?

  • 在Linux下有很多屏幕载图的工具,下面简单介绍一下: 在GNOME桌面中自带了一个屏幕截图工具,位于“动作”栏内。该工具功能很少,只能截取当前屏幕。 在GMIP中也可截图,在“文件”--“获取”菜单下有一个“屏幕抓图”选项可进行屏幕截图。它可截取任意图窗口的内容,并自动输入到GMIP中,我们可方便地进行处理和保存。 安装ImageMagick软件,它有一个工具叫import可用于屏幕截图。该工具

  • 点击按钮进行截屏,可以将截屏图像保存到相册中。 作者说:听说会和苹果的策略有冲突,应用如果上架可能会被拒绝。这个估计是看人品了吧。经过测试发现,如果先弹出对话框,然后再截屏,似乎并不能把对话框也给保存下来。 [Code4App.com]

  • 问题内容: 我只需要当前视口的屏幕截图,尤其要注意滚动位置。基本上是当前Chrome驱动程序的功能。 从我所阅读的内容看来,这应该是完全可能的,但是由于某些原因,screenshot命令始终努力获取完整的文档截图。实际上,IE驱动程序会拍摄多个视口镜头,然后将它们缝合在一起。 我使用的是Ruby Webdriver,无论如何我都看不到仅截取视口的屏幕截图。可能吗? 问题答案: 在处理WebDriv