Casper.js:找不到选择器,即使它出现在html中

时间:2014-08-09 17:37:10

标签: javascript forms web-scraping phantomjs casperjs

我试图通过Casper.js自动填写表单。表单显示在模式弹出窗口中,并且已经填充了数据,因此我只需单击提交标签。

我有以下代码:

this.echo(this.getHTML('#modalContent'))
if(!casper.exists('.green_btn white font_18 arrow_btn_pad rad_5')) {
    this.echo('not found')
} else {
    this.echo('found')
}
this.clickLabel('Submit')

登录到控制台的modalContent div的html包含:

<a href="javascript:void(0);" onclick="$.shactivity.eoiSubmit('expressval');return false;" class="green_btn white font_18 arrow_btn_pad rad_5">

其中expressval是表单的ID。

由于html包含选择器,因此下一行应打印&#39;找到&#39;,但它会打印“未找到”&#39;。更重要的是,clickLabel('Submit')不会返回任何错误,但表单也未提交。我做错了什么?

1 个答案:

答案 0 :(得分:0)

CasperJS接受CSS3 selector strings,你的不正确。你想使用这样的东西:

this.echo(this.getHTML('#modalContent'))
if(!casper.exists('.green_btn.white.font_18.arrow_btn_pad.rad_5')) { //changed
    this.echo('not found')
} else {
    this.echo('found')
}
this.clickLabel('Submit')