2017-12-30 53 views
0

캐스퍼가 해당 요소를 보려고 시도하는 여러 가지 공격 방법을 사용했습니다. 두 번째 GET 요청을 통해로드되어 json을 반환하여 페이지의로드를 유도합니다. DOM.CasperJS가 아약스를 통해로드 될 때 클래스별로 요소를 찾지 못했습니다.

문제는 this.waitForResource(url,....)입니다. 약 2 초 후에 성공 콜백을 실행합니다 (20 세트의 타임 아웃이 있습니다).

나는 다음 시도 첫번째 this.click('.class-name') 내부 casperJS를 통해 this.evaluate(function(){document.getElementsByClassName('.class-name')[0].click()});

클릭에 의해 반환 다음 CasperError: Cannot dispatch mousedown event on nonexistent selector: .class-name 나는 DOM의 행동이 무엇을 잘 모르겠어요 동안 - 나는 그것이 또한 한 가정 그래서 내 this.on('resource.received',....) 호출 직후 아무것도 포착하지 않습니다 아무런 효과도 없다. DOM 코드는 때때로 Casper에서 자동으로 실패하는 것 같습니다.

ajax를 통해 DOM에로드 된 후에 만 ​​요소를 선택하고 파일을 다운로드하려면 어떻게해야합니까?

CasperJS보다 우수한 라이브러리가 있습니까?

답변

0

캐스퍼는 필요에 따라 waitForSelectorwaitFor 개의 방법을 사용합니다. 제공하는 기능을 제공 선택기 DOM 될 때까지 기다립니다

waitForSelector true를 반환 할 때까지

waitFor

기다립니다, 그래서 나는 이것이 당신이 사용하고 싶은 것 같다.

또한 waitUntilVisible은 화면에 요소가 표시 될 때까지 대기합니다.