gpt4 book ai didi

php - Selenium RC 通过 (winxp/winserver) 发送空白屏幕截图

转载 作者:行者123 更新时间:2023-12-03 23:24:34 25 4
gpt4 key购买 nike

我正在尝试使用 selenium-rc 和 pear 的 selenium PHP API 设置我的虚拟 (xen) win xp 实例、专用 Windows 服务器和专用 Windows XP 桌面电脑来进行 Web 应用程序 UI 测试运行测试的 php 脚本位于其应用程序服务器上,与远程控制的 Windows 位于同一本地网络上)。

到目前为止,一切都很顺利,除了我无法从 selenium RC 获取屏幕截图 - 在 base64_decode() 之后它们都是全空白(灰色); (没有它,他们甚至不会打开)。

尽管 os x 预览将它们显示为灰色,但我很确定它们实际上是透明的或存在某种其他损坏,因为 Photoshop 根本不会打开它们。 (它们重 0.7k)然而,unix"file"命令将它们正确识别为“PNG 图像,1440 x 900,8 位/彩色 RGB,非隔行” - 1440 x 900 是我的 Mac 的分辨率,连接到windows系统通过远程桌面。

我直接运行selenium rc(即java -jar selenium-server.jar),而不是作为服务。我的所有 Windows 测试系统中的症状都是相同的。

我的 Selenium 版本是 1.0.1,这是尝试获取屏幕截图的代码片段:

$this->selenium->windowMaximize();$screenshot = $this->selenium->captureScreenshotToString();

我正在使用最新的Testing_Selenium pear 包。我意识到这里有一个处理类似问题的问题,但我没有使用服务包装器,也没有能力引入这种复杂性(但如果您认为这是一个错误,请告诉我)

谢谢和问候,安德拉斯

ps:我将其交叉发布到多个论坛,拼命地试图获得一些反馈 - 如果这让您感到不安,我深表歉意:-)

编辑:selenium rc 控制台说

16:38:24.562 INFO - 在 session a5304a287eb24402 上得到结果:[base64 编码的 PNG]8c8c843b294bf98fjava.net.SocketException:软件导致连接中止:套接字写入错误 在 java.net.SocketOutputStream.socketWrite0( native 方法) 在 java.net.SocketOutputStream.socketWrite(来源未知) 在 java.net.SocketOutputStream.write(来源未知) 在 org.mortbay.http.ChunkingOutputStream.bypassWrite(ChunkingOutputStream.java:151) 在 org.mortbay.http.BufferedOutputStream.write(BufferedOutputStream.java:142) 在 org.mortbay.http.HttpOutputStream.write(HttpOutputStream.java:423) 在 org.mortbay.http.HttpOutputStream.write(HttpOutputStream.java:414) 在 org.openqa.selenium.server.SeleniumDriverResourceHandler.handleCommandRequest(SeleniumDriverResourceHandler.java:370) 在 org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:125) 在 org.mortbay.http.HttpContext.handle(HttpContext.java:1530) 在 org.mortbay.http.HttpContext.handle(HttpContext.java:1482) 在 org.mortbay.http.HttpServer.service(HttpServer.java:909) 在 org.mortbay.http.HttpConnection.service(HttpConnection.java:820) 在 org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) 在 org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) 在 org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) 在 org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) 在 org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)

适用于所有屏幕截图。

最佳答案

当没有物理桌面(或远程桌面 session )时,运行 Selenium RC 的 Java 进程将导致黑色屏幕截图。在不了解更多信息的情况下,这可能是您的问题。

作为 Selenium RC 的创建者,我实际上建议不要完全使用 Windows 服务。相反,请像我们在 BrowserMob 上所做的那样,它提供 free monitoringfree load testing服务,以及最近推出的 instant test tool从多个位置截取您网站的屏幕截图。

我们所做的就是在 VNC 的上下文中启动所有内容。 session 。在 Windows 上,将 VNC 配置为在启动时启动 session 。然后确保用户自动登录。然后在 Program Files->Startup 中放置一个 .bat 文件来启动 Selenium RC。这有点痛苦,但这是我发现的确保 Selenium RC 在支持屏幕截图、启动 IE、与 native 事件交互等的环境中启动的最可靠方法。

祝你好运!

关于php - Selenium RC 通过 (winxp/winserver) 发送空白屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1742075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com