CasperJS中的填充方法

时间:2012-07-09 10:05:52

标签: forms phantomjs casperjs

我想填写表格并提交。

检查我的脚本的一部分:

casper.then(function(){
    if(this.exists('#msisdn')){
        this.echo('ok found');
        **this.test.assertExists('form[id="internetPlus"]', 'form is found');
        this.fill('form[id="internetPlus"]', {
            'numero': 'xxxxxxxx'  
        },true);**
        this.click('#button');

我收到了这个错误:

**PASS form is found**
[info] [remote] attempting to fetch form element from selector:   
'form[id="internetPlus"]'
**[error] [remote] TypeError: 'undefined' is not an object (evaluating   
'field.getAttribute')
FAIL CasperError: Unable to fill form
#    type: uncaughtError
#    error: "CasperError: Unable to fill form"
CasperError: Unable to fill form                                               
  /home/soufyan/workspace/casperjs:524 in fill
  /home/soufyan/workspace/casperjs/kkostoreHomeTest.js:45
  /home/soufyan/workspace/casperjs:909 in runStep
  /home/soufyan/workspace/casperjs:252 in checkStep**

我不明白为什么我无法填写表单因为断言结果没问题。

1 个答案:

答案 0 :(得分:0)

表单可能不包含名称为“numero”的任何输入或字段。确保输入具有该名称。

我试图通过简单地将垃圾变量添加到传递给fill方法的对象文字中来重现您的问题。我得到了完全相同的错误。