【问题标题】:Casperjs: How to manipulate javascript paging( links overloaded by javascript)Casperjs:如何操作 javascript 分页(由 javascript 重载的链接)
【发布时间】:2017-11-15 17:20:30
【问题描述】:

使用 casperjs,我正在从网站上抓取一些信息,在这个页面中有一个通过重载链接创建的分页

<a id="ctl0_CONTENU_PAGE_resultSearch_PagerTop_ctl2"     
href="javascript:;//ctl0_CONTENU_PAGE_resultSearch_PagerTop_ctl2"><img 
src="themes/images/fleche-suivant.gif" alt="Aller à la page suivante"></a>

有两种访问下一页的方法:

  1. 点击下一步按钮 as shown in this image

  2. 或更改as shown in this pic字段的值并点击键盘上的回车键

我已经尝试了这两种方法,但都不起作用,请有人帮我编写其中一种代码。

var mouse = require("mouse").create(casper);
var url = '';
var url2 = '';
var tst;
casper.test.begin('Scraping start', function(test) {
casper.start(url, function() {
    this.test.pass('Opened 1st page');
})
.thenOpen(url2, function(){
    this.test.pass('Opened 2nd page')
})
.then(function(){

 //these are the tow methodes I try to click on the next button
//this.mouse.click("#ctl0_CONTENU_PAGE_resultSearch_PagerTop_ctl2");   
this.thenClick(' div.liens a#ctl0_CONTENU_PAGE_resultSearch_PagerTop_ctl2');
})

.then(function() {
    tst = this.evaluate(function() {
    return 
__utils__.getFieldValue( 
'[name="ctl0$CONTENU_PAGE$resultSearch$numPageTop"]');   
});
})
.run(function() {
    console.log(tst);
    test.done();
});
});

casperjs的版本是1.1.4,我用的是幻影浏览器

【问题讨论】:

  • 为您的控制台日志提供log-level=true 标志
  • 其实这两个标志--verbose --log-level=debug
  • 感谢您的帮助 :-)

标签: javascript hyperlink casperjs paging


【解决方案1】:

这通常会导航到我的第二页。试试看,你也可以保存截图以进行更多调试。

var casper = require('casper').create();
var url = 'https://www.marchespublics.gov.ma/index.php5?page=entreprise.EntrepriseAdvancedSearch&AllCons&EnCours&domaineActivite=1.15';

casper
    .start(url, function() {
        this.echo('Opened page ' + this.evaluate(function() {
            return document.title;
        }), 'INFO');
    })
    .then(function() {
        if (this.exists('a[id="ctl0_CONTENU_PAGE_resultSearch_PagerTop_ctl2"]')) {
            this.echo('the heading exists');
        } else {
            this.echo('Does not exist');
        }
    })
    .thenClick('div.liens a#ctl0_CONTENU_PAGE_resultSearch_PagerTop_ctl2')
    .wait(5000)
    .then(function() {
        this.capture('exit.png');
    })
    .run();

希望有帮助!

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 2021-03-20
    • 2019-01-01
    相关资源
    最近更新 更多