1

我有一个表格,我正在尝试使用 CasperJS 填写。代码本身似乎没有任何问题(没有返回错误) - 但我似乎无法“检查”表格是否已填写。

当我转储“first_name”时,它似乎是空白的——即使我已经将它设置为用字符串“Joe”填充——任何想法我做错了什么?

casper.start(url);
casper.then(function() {
    this.fill('form[name="phones_display"]', {
        'first_name'            : 'Joe', // Required
        'last_name'             : 'bloggs', // Required
        'check_payable'         : '', // name to cheque if different from your name
        'payment_method'        : 'check', // Required check, paypal
        'shipping_method'       : '', // envelope, fedex
        'email_address'         : 'joe@bloggs.com', // Required
        'paypal_email_address'  : '',
        'telephone_number'      : '12345678', // Required
        'street_address_1'      : '', // Required
        'street_address_2'      : '',
        'city'                  : '', // Required
        'state'                 : '',
        'zip_code'              : '', // Required
        'hear'                  : '',
        'otherreason'           : ''
    }, true);
});

casper.then(function() {
    var first_name = this.evaluate(function() {
        return $('input[name="first_name"]').val();
    });

    require('utils').dump(first_name);
});
casper.run();
4

2 回答 2

3

发生这种情况是因为填写表格后,它被提交了。因此,当您尝试输入“名字”时,表格已被清除。为了避免这种情况,只需将 casper.fill() 方法的第三个参数更改为 false。

fill(String selector, Object values[, Boolean submit])

例子:

this.fill('form[name="phones_display"]', {
    'first_name'            : 'Joe', // Required
    'last_name'             : 'bloggs', // Required
     .... 
}, false);
于 2013-07-31T14:10:54.593 回答
0

想通了...页面弄乱了表单标签,所以我的代码永远无法工作:-(

于 2013-08-01T10:23:26.983 回答