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。
我正在尝试在 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。