2014-11-09 1 views
0

casperjs가있는 페이지에 액세스하고 스크린 샷을 찍은 다음 선택기 '다음'이있는 동안 '다음을 클릭하십시오'(각 페이지의 스크린 샷 찍기)를 계속하려고합니다. 페이지에서.AJAX 페이지에 셀렉터가있는 동안 다음 페이지로 이동

내 코드는 ajax가없는 사이트에서 작동하지만 ajax를 사용하는 다른 웹 사이트에서는 작동하지 않습니다. 기본적으로, 아약스가 포함 된 페이지와, 이런 것입니다 :

  • 지금 우리가 2 페이지에있는 다음 페이지로 이동하기 위해 스크린 샷을 다음
  • 클릭을

    1. 액세스 페이지 1 다른을 다음에 다시 스크린 샷
    2. 클릭
    3. ,
    4. 은 우리가 페이지에서 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 개라고 가정) 요청을 어떻게 제한합니까?

  • +0

    링크가 끊기거나 그렇지 않으면 사용할 수 없게됩니다. 추후 독자가 대답을 이해할 수 있도록 질문 자체에 호출기 패널의 마크 업을 포함하십시오. –

    답변

    0

    브라우저에서 두 번째 페이지로 이동하여 개발자 도구 (일반적으로 F12)를 열면 $$("yourSelector")을 입력하여 선택기를 테스트 할 수 있습니다.

    문제는 귀하의 nextlink페이지 1로 돌아갑니다. 버튼입니다.

    당신은 다음 선택으로

    b.dxp-summary + a.dxp-button.dxp-bi 
    

    를 사용할 수 있습니다.

    다른 질문은 전역 카운터 변수를 추가하고 가시성을 테스트하는 동일한 위치에서 테스트합니다. Cauton의 단어, 시정 테스트는 아무것도하지 않습니다. 버튼은 전체 시간 및 마지막 페이지에서도 볼 수 있습니다. 버튼에 dxp-disabledButton 클래스가 없는지 확인해야합니다.

    +0

    파이어 버그로 셀렉터를 테스트했지만 첫 번째 페이지에만 ... 실제로 두 번째 페이지로 이동하면 셀렉터가 잘못되었습니다. – peixotorms