我正在尝试运行一个基本的casperjs脚本,它登录到一个网站,然后显示链接。但是我的输出没有返回'Done'
这是我的代码
var casper = require('casper').create();
casper.start('http://xxxxxx/Login.aspx', function(){
//Login
this.fill('form#form1', {
'username': 'xxxxx',
'password': 'xxxxx'
}, true);
});
casper.then(function(){
var links = document.getElementsByTagName('a');
for(var i = 0; i < links.length; ++i) {
//These should show something
this.echo(links[i].innerText;
this.echo(this.getHTML());
}
});
casper.run(function(){
this.echo('done').exit();
});
就像我说的,我唯一能回来的就是“完成”。
答案 0 :(得分:0)
您在CasperJS上下文中使用getElementsByTagName,您不能在此处执行此操作,您必须使用evaluate函数传入页面上下文(请参阅evaluate,thenEvaluate)。 如果您只想打印链接的文本,请在casper中使用它。然后:
this.echo(this.fetchText('a'));
你在这里也忘记了一个括号:this.echo(links [i] .innerText;
当你在casperjs中迭代时,你应该使用每个(IIFE):http://docs.casperjs.org/en/latest/modules/casper.html#each