我遇到一个问题,即使找到了选择器,我的CasperJS也找不到特定的元素。
请参阅下面的代码:
var casper = require('casper').create();
casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36');
casper.options.waitTimeout = 5000;
casper.options.viewportSize = {width: 1920, height: 1080};
casper.start('http://www.mega888.vip/login.html', function() {
this.echo("Login Page Loaded.");
});
casper.waitForSelector('div.login-box-body', function() {
if(!casper.exists('div.login-box-body')){
this.echo("Login Box Body Exist");
} else {
this.echo("Login Box Body Not Exist");
}
if(!casper.exists('input#userName.form-control.input-lg')){
this.echo("Username field Exist");
} else {
this.echo("Username field Not Exist");
}
if(!casper.exists('input#password.form-control.input-lg')){
this.echo("Password field Exist");
} else {
this.echo("Password field Not Exist");
}
});
casper.run();
从上面的代码中,它回显Login Box Body Not Exist
,它显然已经满足条件waitForSelector('div.login-box-body')
。
此外,对于casper.exists('input#userName.form-control.input-lg
条件,它返回TRUE,但是当我尝试使用this.sendKeys
函数时,它表示无法找到元素。
任何人都可以帮助我吗?无论我如何尝试,我都无法使用这些代码。
谢谢!
答案 0 :(得分:0)
尝试将if语句包装在then()中,如下所示:
casper.then(function(){
if(casper.exists('input#userName.form-control.input-lg')){
this.echo("Username field Exist");
} else {
this.echo("Username field Not Exist");
}
});
编辑:删除!在casper.exists()上,如果存在,它将返回true
,并且您希望显示“用户名字段存在”。