[英]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);
}
);
});
单击按钮后,如何进入新页面。 登录后,我们将看到具有类.modal
的modal
。 我正在尝试等待加载。 但是每次函数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
:要true
在pageSettings
创建卡斯帕对象时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.