繁体   English   中英

单击并等待新页面加载

[英]Click and wait for the new page to load

我正在尝试登录网页。 我填写了用户名和密码,还单击了登录按钮,如下面的代码所示。

casper.start(startURL, function () {
        this.fill('.header-login-wrap', { // FILL THE USERNAME AND PASSWORD
            email: username,
            password: password
        }, false); // Do not submit the form immediately

        this.click('.btn-login'); // CLICK THE LOGIN BUTTON

        this.waitForSelector('.modal',
            function pass() {
                console.log('pass');
            },
            function fail(resp) {
                console.log('fail', resp);
            }
        );
    });

单击按钮后,如何进入新页面。 登录后,我们将看到具有类.modalmodal 我正在尝试等待加载。 但是每次函数fail都会调用resp = 5000 不明白这意味着什么。 这是单击登录按钮然后等待新页面加载的正确方法吗?

首先,您是否尝试将fill()的最后一个参数设置为true

this.fill('.header-login-wrap', { // FILL THE USERNAME AND PASSWORD
        email: username,
        password: password
    }, true); // Submit the form immediately

如果这不起作用,请尝试分步执行,例如casper.then()步骤:

casper.start(startURL, function () {
        this.fill('.header-login-wrap', { // FILL THE USERNAME AND PASSWORD
            email: username,
            password: password
        }, false); // Do not submit the form immediately
});
casper.then(function(){
    this.click('.btn-login'); // CLICK THE LOGIN BUTTON
});

casper.then(function(){
    this.waitForSelector('.modal', function(){
                this.capture('after_login.png');
                this.echo('pass');
            },function() {
                this.capture('after_login_fail.png');
                this.echo('fail');
            }
        );
});

所有这些都假设选择器是正确的。 我添加了capture()来登录图像,脚本正在“看到”。 为此,您必须设置loadImages :要truepageSettings创建卡斯帕对象时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM