Casperjs和Waitforurl()等待下一页[英] Casperjs and waitForUrl() to wait for next page

问题描述

我想从 httpp中使用waitforurl()函数://docs.casperjs.org/en/latest/modules/casper.html#waitforurl .在发送登录表格后,将casperjs寄出,应等待下一页加载.在下面的代码中,您会看到"第二个变体",这就是我尝试编码的方式,还可以看到发生错误消息. "第一个变体"正在工作,因此捕获了dashboard.png.

有人可以解释"第二个变体"是什么问题?

    // ...

    // Type and send login Form
    casper.then(function() {
            this.evaluate(function(){                                       
                    $("username").value="admin";
                    $("password").value="pass#";
                    $("login").click();
            });
    });

    // First variant (works) -----------------
    // casper.then(function() {
    //        this.clickLabel('Dashboard', 'a');
    // });

    // Second variant (works not, error) -----------------
    // casper.waitForUrl(/\/admin\/index\.php/,function() {
    //        this.clickLabel('Dashboard', 'a'); 
    //});
    // -> [error] [phantom] Wait timeout of 5000ms expired, exiting.
    // -> Wait timeout of 5000ms expired, exiting.


    casper.then( function(){
            this.capture('./dashboard.png');
    });

推荐答案

我得到了!

"第二个变体"不是问题.在此之前的登录步骤导致错误.要进行适当的登录步骤,我需要等一下Casperjs设置cookie.

我还改变了填写端的方式发送表格.在以下登录步骤中,Waitforurl()的"第二个变体"正常工作:

// Type and send login Form
casper.wait(1000,function(){
            this.fill('.tl_login_form', {
                    username: "admin",
                    password: "pass#"
            },true);
});

此外,以下警告消失了!因此,这可能意味着,每当您收到此警告,而您不知道为什么,请去检查您的cookie:

[warning] [phantom] Loading resource failed with status=fail: http://mytestdomain.de

本文地址:https://www.itbaoku.cn/post/1740189.html