casperjs가있는 페이지에 액세스하고 스크린 샷을 찍은 다음 선택기 '다음'이있는 동안 '다음을 클릭하십시오'(각 페이지의 스크린 샷 찍기)를 계속하려고합니다. 페이지에서.AJAX 페이지에 셀렉터가있는 동안 다음 페이지로 이동
내 코드는 ajax가없는 사이트에서 작동하지만 ajax를 사용하는 다른 웹 사이트에서는 작동하지 않습니다. 기본적으로, 아약스가 포함 된 페이지와, 이런 것입니다 :
- 액세스 페이지 1 다른을 다음에 다시 스크린 샷
- 클릭 ,
- 은 우리가 페이지에서 1.에 있습니다 ... 3 페이지로 이동하기 위해 (우리는 3 페이지에 있어야합니다)
일하는 g 예 (아약스없이 사이트) :
function printscreen() {
this.capture('Step' + new Date().valueOf() + '.png'); // take screenshot
var nextlink = 'input[name="ctl00$cphMain$Btn_GoNext"]'; // selector
if (this.visible(nextlink)) {
this.thenClick(nextlink);
this.wait(5000);
this.then(printscreen);
} else {
this.echo("END")
} // click next and run again or end
}
var casper = require('casper').create({ logLevel: "debug", verbose: true });
casper.start('http://www.vertentehumana.pt/candidatos/ofertas-de-emprego.aspx').then(printscreen);
casper.run(function() { this.echo('finished'); this.exit(); });
작동하지 않음 (1 페이지 만 다음 2 반복 반환) :
function printscreen() {
this.capture('Step' + new Date().valueOf() + '.png'); // take screenshot
var nextlink = '#ctl00_ctl00_MainContent_MainContent_dvwListItems_PGB a.dxp-button.dxp-bi:nth-of-type(1)'; // selector
if (this.visible(nextlink)) {
this.thenClick(nextlink);
this.wait(5000);
this.then(printscreen);
} else {
this.echo("END")
} // click next and run again or end
}
var casper = require('casper').create({ logLevel: "debug", verbose: true });
casper.start('http://www.slot.pt/JobVacancies').then(printscreen);
casper.run(function() { this.echo('finished'); this.exit(); });
가 어떻게이 문제를 해결할 수 있습니까? n (10 개라고 가정) 요청을 어떻게 제한합니까?
링크가 끊기거나 그렇지 않으면 사용할 수 없게됩니다. 추후 독자가 대답을 이해할 수 있도록 질문 자체에 호출기 패널의 마크 업을 포함하십시오. –