CasperJS在通过ajax

时间:2017-12-30 03:35:41

标签: ajax download phantomjs casperjs

我使用了几种攻击方法试图让Casper看到有问题的元素,它通过第二个GET请求加载,返回一堆json以加载到页面的DOM中。

事情是this.waitForResource(url,....)在大约2秒后执行成功回调(我的超时设置为20),工作正常。

然后我首先尝试了this.click('.class-name'),然后是this.evaluate(function(){document.getElementsByClassName('.class-name')[0].click()});

点击通过casperJS返回CasperError: Cannot dispatch mousedown event on nonexistent selector: .class-name,而我不确定DOM操作的作用 - 我的this.on('resource.received',....)在没有捕获任何内容后立即调用,所以我认为它也没有效果无论是。有时,DOM代码似乎在Casper中无声地失败。

如果通过ajax将元素加载到DOM中,可以选择哪些元素并单击它们来下载文件?

是否有比CasperJS更好的库?

1 个答案:

答案 0 :(得分:0)

Casper拥有适合您需求的waitForSelectorwaitFor方法。

waitFor将等到提供的函数返回true

waitForSelector将等到提供的选择器在DOM中,所以我猜这是你想要使用的那个。

另外还有waitUntilVisible等待元素在屏幕上可见