每次 url 使用 CasperJS 更改时如何获取页面标题

How to get the page title every time the url changes with CasperJS

我查看了 CasperJS 文档,似乎没有任何事件可以让我在导航发生时访问当前文档。那么是不是每次有导航就获取一个页面的新标题呢?

url.changed 会在另一个 URL 加载后立即发出,这通常意味着标题也已更改。它似乎没有在页面加载结束时发出,因此您还需要添加一个步骤让 CasperJS 等待页面加载。

casper.on("url.changed", function(){
    this.then(function(){
        this.echo(this.getTitle());
    });
});

您可以使用完全相同的方式使用 navigation.requested 事件。

这是已接受答案的非常轻微更快版本,如果您要处理许多问题,它将产生重大影响URL 变化:

casper.on('url.changed', function () {
  this.then(function () {
    console.log(this.page.title);
  });
});