Javascript evaluate中的CasperJS click()立即返回null,忽略其他行

Javascript evaluate中的CasperJS click()立即返回null,忽略其他行,javascript,click,phantomjs,casperjs,Javascript,Click,Phantomjs,Casperjs,我试图在CasperJS中编写一个求值函数,但在调用click事件时遇到了一个问题。下面是一个快速代码块来说明问题: returnVal = casper.evaluate(() -> document.querySelector('.class').click() return true returnVal在上述字段中始终为空,即使类存在 在我的实际代码中,我有大量代码要运行,我希望在整个过程中执行多个单击事件 CasperJS的设计是在调用click()时立即返回吗?

我试图在CasperJS中编写一个求值函数,但在调用click事件时遇到了一个问题。下面是一个快速代码块来说明问题:

returnVal = casper.evaluate(() ->
    document.querySelector('.class').click()
    return true
returnVal
在上述字段中始终为空,即使类存在

在我的实际代码中,我有大量代码要运行,我希望在整个过程中执行多个单击事件


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

当您注册到诸如“page.error”之类的错误事件时:

然后您将看到,
click()
不是一个可以调用的函数。PhantomJS 1.x只支持
元素上的
click()
,即使这样也不一致。如果您想要一致的行为,请使用CasperJS自己的单击功能:

casper.then(function(){
    this.click(".class");
});
evaluate()
调用的结果始终为null(
undefined
),因为
return
语句从未执行过。在此之前的行中会抛出一个未捕获的错误


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

谢谢。是否绝对没有办法在求值函数中执行正常的JavaScript单击事件?我正在处理的网站使用虚拟DOM,因此
这个。很遗憾,单击(“.class”)
不起作用。您可以在中的页面上下文中添加自定义合成单击功能,但我怀疑这是否会更好。我想你需要弄清楚虚拟节点背后真正的DOM节点是什么。
casper.then(function(){
    this.click(".class");
});