1

以下のような小さな CasperJS テスト スクリプトがあります。で使用されている Web サイトは、urlangular で構築されています。

var deals;
var url;
var login_url;

casper.test.begin('Paytm test', function(test) {
    casper.start(login_url, function() {
        test.assertExists('form', 'form is found');
        this.fill('form', {
            username: 'username', 
            password:  'password'
        }, true);
    });

    casper.then(function(){
        casper.start(url);

        casper.waitForSelector(".border-radius.profile1",
        // click login/signup button on home page
        function success() {
            test.assertExists(".border-radius.profile1");
            this.click(".border-radius.profile1");
        },
        function fail() {
            test.assertExists(".border-radius.profile1");
        });

        casper.waitForSelector(deals,
        // click on deals
        function success() {
            test.assertExists(deals);
            this.click(deals);
        },
        function fail() {
            test.assertExists(deals);
        });

        casper.waitForSelector("selector",
        // select an item from coupons page
        function success() {
            test.assertExists("selector");
            this.click("selector");
        },
        function fail() {
            test.assertExists("selector");
        });

        casper.waitForSelector(".discraption button",
        // clicked on buy button
        function success() {
            test.assertExists(".discraption button");
            this.click(".discraption button");
        },
        function fail() {
            test.assertExists(".discraption button");
        });

        casper.waitForSelector("#mpCart div div.order-summary.fr > button",
        // clicked on proceed button from cart
        function success() {
            test.assertExists("#mpCart div div.order-summary.fr > button");
            casper.debugHTML("#mpCart div div.order-summary.fr > button");
            console.log('clicked on proceed button');
        },
        function fail() {
            test.assertExists("#mpCart div div.order-summary.fr > button");
        });

        casper.thenEvaluate(function(){
            console.log('in then evaluate');
            angular.element(document.querySelectorAll('#mpCart div div.order-summary.fr > button')).triggerHandler('click');
        }, 'CasperJS');
    });

    casper.run(function() {
        test.done();
    });
});

すべての waitforSelector は正常に動作していますが、角度のあるクリック イベントをトリガーする casper.thenEvaluate 関数にコントロールが入りません。

私はテストしました

angular.element(document.querySelectorAll('#mpCart div div.order-summary.fr >   
button')).triggerHandler('click');

firebug コンソールからは正常に動作しますが、ここでは動作しません。

どんな助けでも本当にありがたいです。

4

1 に答える 1

0

最終的な URL 呼び出しをデバッグしましたが、今は this.openUrl('that specific url') を実行しています。このシナリオのように、それは機能します。

回答ありがとうございます。

于 2014-07-04T09:40:08.557 に答える