2013-12-19 3 views
2

CasperJS (버전 1.1.0-beta3) 및 PhantomJS (버전 1.9.2)에 문제가 있습니다. 내 작업 기계에 스크립트를 작성하고 잘 실행됩니다. 이 스크립트를 다른 머신 (테스트 머신)에서 실행하고 싶습니다. 그래서 서버에서 SVN 저장소를 만들고 테스트 머신에서 네트워크 드라이브를 매핑했습니다. repo에서 필자는 자신의 스크립트, 추출한 CasperJS zip의 내용 및 phantomjs.exe를 가지고 있습니다. 또한 테스트 시스템에서 시스템 PATH 변수를 업데이트했습니다.CasperJS는 한 시스템에서 브라우저 요소에 액세스 할 수 있지만 다른 시스템에서는 액세스 할 수 없습니다.

이전에 괜찮 았던 로컬 컴퓨터에서 동일한 네트워크 드라이브를 매핑했습니다. 여전히 네트워크 드라이브에서도 제대로 실행됩니다. 하지만 테스트 머신에서는 실행되지 않습니다. CasperJS와 PhantomJS는 잘 작동하지만 스크립트는 사이트에 액세스 할 수없는 것 같습니다. 내 모든 캡처는 다시 비어 있으며 컨트롤을 찾을 수 없습니다.

내가 액세스하려는 사이트는 https://admin.surescripts.net입니다. 지금 당장 내가하려는 것은 로그인뿐입니다.

캐롤라이나는 새로운 테스트를 작성하여 화면 캡쳐 할 수 있습니다.

타이밍 문제를 확인하고 동일한 웹 사이트의 다른 환경에서 실행하기 위해 대기 명령을 넣으려고 시도했습니다. 불운. 무엇이 잘못 될 수 있습니까? 여기

테스트 기계에서 cmd를 출력입니다 : 대런 제안처럼 onResourceRequestedonResourceReceived에 내가 wget을 실행

Z:\Automated Entry>casperjs automatedentry.js 
CasperError: Errors encountered while filling form: form not found 
    Z:/CasperUtils/CasperJS/modules/casper.js:802 in fillForm 
    Z:/CasperUtils/CasperJS/modules/casper.js:862 in fillNames 
    Z:/Automated Entry/automatedentry.js:51 
    Z:/CasperUtils/CasperJS/modules/casper.js:1553 in runStep 
    Z:/CasperUtils/CasperJS/modules/casper.js:399 in checkStep 
+0

로컬 또는 원격 사이트입니까? 어떤 URL 또는 경로를 사용하여 액세스하고 있습니까? – nrabinowitz

+0

첫 번째 문제 해결은 네트워크 수준입니다. 리눅스에서는 wget이나 curl을 사용하여 URL에 도달 할 수 있는지 확인합니다. (빠른 검색 결과 "Windows 용 Wget"이 있음을 알 수 있습니다.) –

+0

@DarrenCook - 테스트 컴퓨터가 인터넷에 연결되어 있고 브라우저를 통해 사이트에 액세스 할 수 있기 때문에 네트워크 문제라고 생각하지 않습니다. –

답변

1

다음 할당 로깅, 나는 문제가 PhantomJS 것을 발견 :

[warning] [phantom] Loading resource failed with status=fail: https://admin.surescripts.net/ 

페이지의 SSL 때문에 PhantomJS에서 오류가 발생했습니다. --ignore-ssl-errors=yes을 cmd args에 추가하면 문제가 해결되어 스크립트를 실행할 수있었습니다.

내 테스트 시스템에서 발생하는 이유는 무엇이며 내 로컬에서는 발생하지 않는 이유는 무엇입니까? 한편,이 플래그를 스크립트에 작성하여 테스트를 실행할 때마다 입력 할 필요가 없도록 제안하는 사람이 있다면 환영 할 것입니다. 캐스퍼의 create 메서드 내에서 이미 pageSettings: { ignoreSslErrors: true }을 사용해 보았지만 트릭을 수행하지는 않습니다.

+1

http://docs.casperjs.org/en/latest/modules/casper.html에는 ignoreSSLErrors 설정이 없다고 나와 있습니다. 시작 시간에 팬텀에게 주어질 필요가 있다고 생각합니다. Windows 배치 파일을 사용하여 매번 입력하지 않아도됩니다. –

관련 문제