pgn*_*pgn 2 php selenium screenshot selenium-rc
我正在尝试使用selenium-rc和来自pear的selenium PHP API(运行php脚本)设置我的虚拟(xen)win xp实例,专用的Windows服务器和用于Web应用程序UI测试的专用windows xp桌面PC测试位于其app服务器上,与远程控制窗口位于同一本地网络上.
到目前为止,一切都很顺利,除了我无法从selenium RC获取截图 - 在base64_decode()之后它们都是空白的(灰色); (没有它,他们甚至不打开).
尽管os x预览显示为灰色,但我很确定它们实际上是透明的还是有某种其他损坏因为Photoshop根本不会打开它们.(并且它们的重量为0.7k)然而,unix"文件"命令正确地将它们识别为"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 - GOT结果:[base64编码PNG]会话a5304a287eb24402 8c8c843b294bf98f java.net.SocketException异常:软件导致连接中止:套接字写错误在java.net.SocketOutputStream.socketWrite0(本机方法)在java.net. SocketOutputStream.socketWrite(来源不明)在java.net.SocketOutputStream.write(来源不明)在org.mortbay.http.ChunkingOutputStream.bypassWrite(ChunkingOutputStrea m.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.handleComman dRequest(SeleniumDriverResourceHandler.java:370)在org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(纶iumDriverResourceHandler.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)
适用于所有屏幕截图.
当没有物理桌面(或远程桌面会话)时,运行Selenium RC的Java进程将导致黑屏幕截图.如果不了解更多信息,这可能是您的问题.
作为Selenium RC的创建者,我实际上建议不要完全使用Windows服务.相反,我们在BrowserMob做我们的工作,它提供免费监控和免费负载测试服务,以及最近推出的即时测试工具,可以从多个位置截取您网站的屏幕截图.
我们所做的是从VNC会话的上下文中启动所有内容.在Windows上,配置VNC以在启动时启动会话.然后确保用户自动登录.然后将.bat文件放在Program Files-> Startup中,启动Selenium RC.这是一种痛苦的,但它是硒RC在支持截图,启动IE浏览器,在使用内置事件等交互的环境开始的最可靠的方法我已经找到了为确保
祝好运!
| 归档时间: |
|
| 查看次数: |
3418 次 |
| 最近记录: |