Javascript 使用CasperJS提交表内容

Javascript 使用CasperJS提交表内容,javascript,web-scraping,phantomjs,casperjs,Javascript,Web Scraping,Phantomjs,Casperjs,我试图使用CasperJS填充两个字段,提交表单,并打印出下一页的内容。但是,我似乎没有成功单击按钮转到下一页。我试图按照CasperJS的教程/示例和答案等进行操作。但是,不同之处在于我提交的不是一个表,而是一个包含多个填写值的表 请在下面找到我的代码: var casper = require('casper').create(); casper.start('https://a836-propertyportal.nyc.gov/Default.aspx', function() {})

我试图使用CasperJS填充两个字段,提交表单,并打印出下一页的内容。但是,我似乎没有成功单击按钮转到下一页。我试图按照CasperJS的教程/示例和答案等进行操作。但是,不同之处在于我提交的不是一个表,而是一个包含多个填写值的表

请在下面找到我的代码:

var casper = require('casper').create();

casper.start('https://a836-propertyportal.nyc.gov/Default.aspx', function() {});


casper.evaluate(function(block, lot) {
    document.querySelector('#ctl00_SampleContent_ctl01_txtBlock').value = block;
    document.querySelector('#ctl00_SampleContent_ctl01_txtLot').value = lot;
    document.querySelector('#ctl00_SampleContent_ctl01_btnSearchBBL').click();
}, '01000', '0011');


casper.run(function() {
    // echo results in some pretty fashion
    this.echo('we are this far in the code..');
    // this.echo(this.getPageContent());
    var links = document.querySelectorAll('td.contentDataElement');
    this.echo(links.length);
    for(var i=0; i<links.length; i++) {
        this.echo(links[i]);
    }
});
var casper=require('casper').create();
卡斯珀,开始https://a836-propertyportal.nyc.gov/Default.aspx,函数(){});
评估(功能(块、批){
document.querySelector('#ctl00_SampleContent_ctl01_txtBlock')。value=block;
document.querySelector('#ctl00_SampleContent_ctl01_txtLot')。value=lot;
document.querySelector(“#ctl00_SampleContent_ctl01_btnsearchbl”)。单击();
}, '01000', '0011');
casper.run(函数(){
//echo的结果非常漂亮
this.echo('我们在代码中走了这么远…);
//this.echo(this.getPageContent());
var links=document.querySelectorAll('td.contentDataElement');
this.echo(links.length);

对于(var i=0;i
casper.evaluate
不是一个阶跃函数,但是您可以在与
start
run
相同的级别上使用它。因此将
casper.evaluate
更改为
casper

此外,您不能在casper中访问
文档
,只能在页面上下文中访问,就像您在
casper.evaluate调用中所做的那样

您的固定代码使用
casper.getElementsInfo
函数获取所需元素的某些属性。您不能将DOM元素从页面上下文传递给casper,它们必须是number、string、[]或{}类型

var casper = require('casper').create();

casper.start('https://a836-propertyportal.nyc.gov/Default.aspx');

casper.thenEvaluate(function(block, lot) {
    document.querySelector('#ctl00_SampleContent_ctl01_txtBlock').value = block;
    document.querySelector('#ctl00_SampleContent_ctl01_txtLot').value = lot;
    document.querySelector('#ctl00_SampleContent_ctl01_btnSearchBBL').click();
}, '01000', '0011');

casper.then(function() {
    // echo results in some pretty fashion
    this.echo('we are this far in the code..');
    // this.echo(this.getPageContent());
    var links = this.getElementsInfo('td.contentDataElement');
    this.echo(links.length);
    for(var i=0; i<links.length; i++) {
        this.echo(JSON.stringify(links[i]));
    }
});

casper.run();
var casper=require('casper').create();
卡斯珀,开始https://a836-propertyportal.nyc.gov/Default.aspx');
casper.tenevaluate(功能(块、批){
document.querySelector('#ctl00_SampleContent_ctl01_txtBlock')。value=block;
document.querySelector('#ctl00_SampleContent_ctl01_txtLot')。value=lot;
document.querySelector(“#ctl00_SampleContent_ctl01_btnsearchbl”)。单击();
}, '01000', '0011');
casper.then(函数(){
//echo的结果非常漂亮
this.echo('我们在代码中走了这么远…);
//this.echo(this.getPageContent());
var links=this.getElementsInfo('td.contentDataElement');
this.echo(links.length);
对于(var i=0;i