0

casperjsドキュメントによると、単純なタスクでフォームを送信しようとしています。しかし、それはうまくいきません。

コードは次のとおりです。

casper.test.begin('Logging in', nbTests, function(test) {
    casper.start(A_SERVER);
    casper.then(function() {
    this.fill('form', {
        'username': GOOD_LOGIN,
        'password': GOOD_PASSWORD}, true);
this.waitUntilVisible('.success');
this.waitForText('Successful login', function (){
    casper.test.assertExists('.success');    
});
    });

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

ただし、これを行うと、次が返されます。

# Logging in
PASS Found an element matching: form
FAIL Redirection to dashboard after successfull login.
#    type: assertExists
#    file: /home/fx/SRC/server/tests_integration/ti_login.js:28
#    code: test.assertExists('.success', "Redirection to dashboard after successfull login.");
#    subject: false
#    selector: ".success"
Unsafe JavaScript attempt to access frame with URL http://127.0.0.1:8000/accounts/login/ from frame with URL file:////etc/local/bin/casperjs/bin/bootstrap.js. Domains, protocols and ports must match.

最初のトラブルはもちろん失敗です。ただし、他の警告も心配です(ランダムに発生します)。これについて何か知っていますか?

編集:コードをリファクタリングしましたが、今は動作します。しかし、私はその理由を理解していません。誰かが親切に問題を説明してくれませんか?

4

2 に答える 2

0

実際、私は をひどく使用していcasperjsました。これが私がなんとか作成した機能コードです:

casper.test.begin('Logging in', nbTests, function(test) {
    casper.start(A_SERVER + A_LOGIN);

    casper.then(function goodInput(){
    this.fill('form', {
        'username': GOOD_LOGIN,
        'password': GOOD_PASSWORD}, true);

    this.waitUntilVisible('#id_file_field');
    this.waitForText('Successful login', function (){
        casper.test.assertExists('#id_file_field', "Login successful");    
    });

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

ただし、XHRの問題の原因はまだわかりません。

于 2013-09-23T15:56:52.483 に答える