2009-11-16 3 views
2

내가 사용, XP의 경우, 전용 윈도우 서버, 웹 애플리케이션의 UI 테스트를위한 전용 윈도우 XP 데스크탑 PC를 내 가상 (젠)을 설정 승리하기 위해 노력하고있어 셀레늄을 통해 빈 스크린 샷을 전송 -rc와 pear의 selenium PHP API (테스트를 실행하는 PHP 스크립트는 원격 제어 Windows와 동일한 로컬 네트워크에있는 애플리케이션 서버에 위치 함).는 셀레늄 RC는 (WINXP/winserver)

셀레늄 RC에서 스크린 샷을 얻을 수 없다는 것을 제외하고 모든 것이 훌륭했습니다. 그들은 공백입니다. base64_decode(); 이후에 모두 (회색)입니다. (그것없이, 그들은 열지도 않는다). OS X의 미리보기가 회색로 표시에도 불구하고

, 나는 그들이 실제로 투명 또는 Photoshop 실 거예요 전혀를 열 때문에 다른 손상의 일종 확신합니다. (그리고 무게는 0.7k입니다.) 유닉스의 "파일"명령은 "PNG 이미지, 1440 x 900, 8 비트/컬러 RGB, 비 인터레이스"로 정확하게 인식합니다. - 1440 x 900은 내 Mac의 해상도입니다. 원격 데스크톱을 통해 Windows 시스템.

내가 아닌 서비스로, (즉, 자바 -jar 셀레늄 server.jar) 직접 셀레늄 RC를 실행하고 있습니다. 증상은 모든 윈도우 테스트 시스템에서 동일합니다. 나는 최신 Testing_Selenium 배 패키지를 사용하고

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

:

내 셀레늄 버전은 여기에 스크린 샷을 얻기 위해 시도하는 조각이야, 1.0.1입니다. 나는 유사한 문제를 다루는 여기에 질문이 실현,하지만 난이 서비스 래퍼를 사용하지 않는도 (당신이 실수라고 생각하지만 만약 알려 않음) 내가 이러한 복잡성을 소개

감사 &을 감당할 수 감사합니다 안드라스

추신 : 내가 어떤 imput를 얻기 위해 필사적 인 시도에 여러 포럼이 교차 게시하도록하겠습니다 - 사과를하는 당신을 당황하게하는 경우를 :-)

편집 : 셀레늄 RC 콘솔은

말한다 16 : 38 : 24.562 정보 - 결과 : [base64 ko 세션에 코딩 PNG는] a5304a287eb24402 8c8c843b294bf98f java.net.SocketException의 : 소프트웨어 때문에 연결이 중단되었습니다 : 소켓 쓰기 오류 을 java.net.SocketOutputStream.socketWrite0 (기본 방법) 에서 java.net.SocketOutputStream.socketWrite (알 수없는 소스) 에서 org.mortbay.http.BufferedOutputStream.write에서 org.mortbay.http.ChunkingOutputStream.bypassWrite에서 java.net.SocketOutputStream.write (알 소스) (ChunkingOutputStrea m.java:151) (BufferedOutputStream.java 에서 142) at org.mortbay.http.HttpOutputStream.write (HttpOutputStream.java:423) at org.mortbay.http.HttpOutputStream.write (HttpOutputStream.java:414)org.openqa.selenium.server.SeleniumDriverResourceHandler.handle에서 org.openqa.selenium.server.SeleniumDriverResourceHandler.handleComman dRequest (SeleniumDriverResourceHandler.java:370) (Selen iumDriverResourceHandler.java:125) org.mortbay에서 에서 1,363,210. htpContext.handle (HttpContext.java:1530) at org.mortbay.http.HttpContext.handle (HttpContext.java:1482) at org.mortbay.http.HttpServer.service (HttpServer.java:909) at 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) 에서 에서 조직 모든 화면 캡처에 대해 .mortbay.util.ThreadPool $ PoolThread.run (ThreadPool.java:534)

.

답변

5

실제 데스크톱 (또는 원격 데스크톱 세션)이없는 경우 Selenium RC를 실행하는 Java 프로세스는 검정색 스크린 샷을 생성합니다. 더 많은 정보를 알지 못하면이 문제가 발생할 수 있습니다.

Selenium RC의 작성자로서 실제로 Windows 서비스를 완전히 사용하지 않는 것이 좋습니다. 대신, free monitoringfree load testing 서비스를 제공하는 BrowserMob 에서뿐만 아니라 최근에 출시 된 instant test tool을 통해 여러 위치에서 사이트의 스크린 샷을 찍습니다.

우리가하는 일은 VNC 세션의 컨텍스트에서부터 모든 것을 시작하는 것입니다. Windows의 경우 시작시 세션을 시작하도록 VNC를 구성하십시오. 그런 다음 사용자가 자동으로 로그인했는지 확인하십시오. 그런 다음 Program Files-> Startup에 .bat 파일을 저장하여 Selenium RC를 실행하십시오. 그것은 다소 고통 스럽지만 스크린 샷을 지원하는 환경에서 Selenium RC가 시작되고 IE를 시작하며 기본 이벤트와 상호 작용할 수 있도록 보장하는 가장 확실한 방법입니다.

행운을 비네!

+0

패트릭, 도와 줘서 고마워. 나는 실제로 테스트가 실행될 때 RDP를 통해 원격 시스템에 연결됩니다. 따라서 1440x900 해상도의 빈 png가 가능합니다. 셀레늄 RC 콘솔에서도이 사실을 알게되었습니다 : {로그가있는 원래 질문 업데이트} – pgn

+0

이렇게 응답을 잘라내는 PHP API로 밝혀졌습니다. (http://jira.openqa.org/browse/SRC-699 참조) Windows 시스템에서 VNC를 사용하여 환경을 설정하는 방법은 완벽하게 유효한 해결책입니다. 패치가있는 상태에서 테스트 할 시간이 있다면 PHP Selenium_Testing 패키지 - 존재하지 않는 데스크탑의 스크린 샷을 찍으려고해도 빈 이미지가 생길 것입니다. 감사. – pgn

1

similar question을 보았습니까? 그게 도움이 될지도 모릅니다. 나는 비슷한 모험을했다.

+0

고마워, 그 특정 시나리오 (예 : 서비스로 셀레늄 - rc를 실행)에 너무 구체적인 다른 질문 및 해결책을 보았다. – pgn

+0

아직 다른 대답 (받아 들여지지 않은 하나)은 몇 가지 힌트를 제공합니다. –