3

作成中の単一ページ ウィザード スタイル フォームの自動化された UI テストを作成しています。特定の入力要素でキーアップをシミュレートしようとしていますが、.trigger jquery メソッドが機能していないようです。これは私が持っているものです。

var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';



page.open('http://localhost:6543/signup', function (status) {

    if (status !== 'success') {
        console.log('Unable to access network');
    } 
    else {

        var test = page.evaluate(function () {

            //entersnumber
            $('#number').val('2223443');
            //keyup triggers ajax call validating that number is not already in the db
            $('#number').trigger('keyup');
            //the radio button is clicked
            $('input:radio[name=salesBroker]').filter('[value=0]').click();

        });

        page.render('thing.png')        
    }

    phantom.exit();
});

キーアップは、番号が存在するかどうかを確認するために ajax 呼び出しをトリガーするため、重要です。thing.png 画像を見ると、検証エラーが表示されていません。これは、キーアップがトリガーされていないことを意味します。

保存中の画像:

ここに画像の説明を入力

キーアップが機能する場合は、検証エラーが表示されるはずです。

4

1 に答える 1

3

キーボード関連のイベントをトリガーするには、少し異なるアプローチを使用する必要があるようです。最初に特定の入力にフォーカスを設定し、次に関連するパラメーターでpage.sendEventメソッドを呼び出します。

page.evaluate(function() {
    $('#number').val('2223443').focus();
});
page.sendEvent('keyup', someKey);

ちなみに、これはかなり新しい機能で、バージョン 1.7でデビューしました。

于 2013-05-16T16:27:38.510 に答える