单击并等待加载新页面

时间:2018-03-16 12:32:23

标签: javascript dom phantomjs casperjs

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

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);
            }
        );
    });

点击按钮后,如何进入新页面。我们一登录,就会看到modal,其中包含.modal个班级。我想在它加载之前等待。但每次使用fail调用函数resp = 5000时。不明白这意味着什么。这是单击登录按钮然后等待加载新页面的正确方法吗?

1 个答案:

答案 0 :(得分:0)

首先,您是否尝试将FileTest的最后一个参数设置为ControllerTest

true

如果这不起作用,请尝试按步骤分开,例如fill()步骤:

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

所有这些假设选择器是正确的。我添加了casper.then()来登录图片脚本是什么'看到'。为此,您必须在创建casper对象时在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