casperjs新手。在需要操作多个表单的站点上工作。需要使用正在运行的电子邮件ID登录,然后我需要点击第二页上的按钮,它不起作用。
var casper = require('casper').create({
pageSettings: {
loadImages: false,
loadPlugins: false,
userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'
}
});
//第一步是登录。
casper.start("https://www-mysite.com");
//这一步工作正常
casper.then(function(){
console.log("Login using username and password");
this.evaluate(function(){
document.getElementById("textfield").value="abc@domain.com";
document.getElementById("continue").click();
});
});
//它捕获屏幕 - 工作正常
casper.then(function(){
console.log("Make a screenshot and save it as Login.png");
this.capture('Login.png');
});
//登录页面后,导航到包含继续按钮的列表页面
// waitForSelector控制台显示它意味着dom检索提到的按钮,然后为什么这个按钮点击事件没有执行。
casper.waitForSelector('#continue_1EE59AB98E7A1976E0530100007F737A_88z67389', function () {
console.log(this, 'continue on 2 page');
this.click('button#continue_1EE59AB98E7A1976E0530100007F737A_88z67389');
/*this.evaluate(function(){
console.log('continue on 2 page sdkjhdskl');
});*/
});
为什么this.evaluate在waitForSelector中不起作用。任何帮助都将非常感激:)