如何在 CasperJS 中使用 setTimeout

How to use setTimeout in CasperJS

在 CasperJS 中有一个名为 evaluate 的函数,它是一种进入页面并执行代码的方式,就好像您正在使用浏览器控制台一样,如果我使用 setTimeout、setInterval 或其他异步函数,它不会按预期工作。

Whosebug中的一些提问使用了wait函数,但是wait函数不能在evaluate中使用。我需要使用 setTimeout,因为我正在抓取包含许多页面的网格,所以当我切换到下一页时,我需要等待几秒钟,这就是问题所在

您不能通过页面 DOM 环境延迟 CasperJS 环境。

换句话说,您不能使用 setTimeout() inside casper.evaluate() 来延迟您的 CasperJS 程序。

最好使用以下 CasperJS 函数之一来延迟您的程序:

查看下图以更好地理解这两种不同环境的工作原理:

图片来源: CasperJS Documentation