我的链接在哪里?

时间:2014-03-18 20:48:28

标签: casperjs

我正在尝试运行一个基本的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();
  });

就像我说的,我唯一能回来的就是“完成”。

1 个答案:

答案 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