2013-11-01 1 views
1

나는 파일 공유 사이트에 액세스하고, 양식에 urls를 넣고, 양식을 제출하고, 원격 업로드 진행 상황을 모니터링하고, 최종적으로 생성 된 링크를 반환하려고합니다. 작동하는 사이트는 원격 URL 업로드 버튼이있는 180upload.com입니다. 브라우저가있는 이상적인 상황에서이 사이트에서 다운로드하고 링크를 생성 할 파일을 게시하고 파일에 대한 링크를 반환합니다.casperjs를 ajax 진행 상태로 올바르게 작동시키는 방법은 무엇입니까?

이는 일이 무엇인지 생각입니다 : http://imgur.com/a/A9i9d

하지만, 내 코드는 "초기화 업로드"페이지 과거를 얻을 수 없다. 모든 것을 실행할 수는 있지만이 페이지를 지나치지 않고 업로드 진행률 표시 줄을 표시하고 파일 전송을 완료하지 못합니다. 내 코드 : 나는 그것을 실행하면 http://pastebin.com/eqdZJkKX

이는 저를 보여 3 이미지 스크린 샷입니다 : imgur.com/A/T1I8S

매번 내가 그것을 실행, 그것은 실행 완료 없으며, 모든 않을 것 생성 한 스냅 샷은 '업로드 초기화'단계에서 표시됩니다. 2 스크린 샷과 같이 제대로 작동하려면 어떻게해야합니까? 업로드가 완료된 직후에 페이지가 새로 고침을 받았지만이를 캡처하여 casperjs 계정을 만드는 방법을 모르겠습니다.

답변

2

아마도 브라우저가 Ajax 호출을 수행 할 수있는 충분한 시간을 허용하지 않을 수 있습니다. 실행을 허용하기 위해 일시 ​​중지 한 후 클릭하거나 업데이트하려고 시도해야합니다. 실행 후 일시 중지하여 Ajax 사이트를 다루는 방법을 보여주는 자습서 비디오를 만들었습니다.

http://www.youtube.com/watch?v=Kefil5tCL9o

+1

감사합니다. 훌륭한 비디오가 정말 도움이되었습니다. 이제 업로드 프로세스를 시작할 수있었습니다. 그러나 얼마나 오래 기다려야 하는지를 어떻게 알 수 있습니까? 다른 크기의 파일을 가지고있어서 시간이 많이 걸립니다. 일부 파일은 몇 초 내에 완료되며 다른 파일은 몇 분이 소요될 수 있습니다. – fsonic

+0

자, waitForSelctor() waitForUrl()과 같은 메소드가 있습니다. 나는 그 방법들 중 하나를 사용하고 업로드 확인 메시지 나 업로드가 성공했다는 것을 알 수있는 페이지에서 찾을 수있는 무엇이든을 위해 xpath를 설정합니다. 유일한 대안은 모든 것을 통과 할 수있을만큼 충분히 오래 기다리는 것인데, 이는 더 쉽지만 시간 관점에서 바람직하지는 않습니다. :) –

관련 문제