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() メソッドの 3 番目のパラメーターを 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 に答える