CasperJS click() in evaluate immediately returns null, ignores other lines

CasperJS click() in evaluate immediately returns null, ignores other lines

我正在尝试在 CasperJS 中编写求值函数,但我 运行 在调用点击事件时遇到了问题。这是一个快速代码块来说明问题:

returnVal = casper.evaluate(() ->
    document.querySelector('.class').click()
    return true

returnVal 在上面始终为 null,即使 class 存在。

在我的实际代码中,我有很多代码要 运行,我想在整个过程中执行多个点击事件。

CasperJS 的设计是在调用 click() 时立即 return 吗?还是我错过了一些非常简单的东西?

当您注册到某些错误事件时 "page.error":

casper.on("page.error", function(msg, trace) {
    this.echo("Error: " + msg);
});

然后你会看到click()不是一个可以调用的函数。 PhantomJS 1.x 仅支持 <input><button> 元素上的 click() 甚至不一致。如果您想要一致的行为,请使用 CasperJS 自己的点击功能:

casper.then(function(){
    this.click(".class");
});

evaluate() 调用的结果始终为空 (undefined),因为永远不会执行 return 语句。在那之前的行中抛出一个未捕获的错误。

这是用 JavaScript 编写的,但以完全相同的方式应用于 CoffeeScript。