如何使casperjs正常使用ajax进度表?

问题描述:

我试图让casperjs访问文件共享网站,将网址放到表单中,提交表单,监控远程上传进度,最后返回生成的链接。 我正在使用的网站是180upload.com,使用“远程URL上传”按钮。 在浏览器的理想情况下,我发布了我希望这个网站下载的文件并生成链接,并且会返回文件的链接。如何使casperjs正常使用ajax进度表?

这是应该发生: http://imgur.com/a/A9i9d

然而,我的代码不能让过去的“初始化上传”页面。 我可以让所有的东西都能运行,但它永远不会通过这个页面,永远不会显示上传进度条并完成文件传输。 我的代码: http://pastebin.com/eqdZJkKX

当我运行它,这是3图像截图它显示我: imgur.com/A/T1I8S

每次我运行它,它永远不会完成执行,每它创建的快照只是在“初始化上传”阶段显示它。 如何才能让这个功能在2个屏幕截图中正常工作? 我注意到它完成上载后页面刷新,但我不知道如何捕获这个,并使casperjs帐户。

很可能你不允许浏览器有足够的时间来进行Ajax调用。你需要确保任何尝试点击或更新等,你暂停后,允许执行。我创建了一个教程视频,演示了如何通过执行后暂停来处理Ajax网站。

http://www.youtube.com/watch?v=Kefil5tCL9o

+1

非常感谢,伟大的视频,真的帮了我。现在我能够开始上传过程。但是,我怎么知道需要等待多长时间,我有不同大小的文件需要不同的时间。一些文件将在几秒钟内完成,其他文件可能需要几分钟。 – fsonic

+0

那么有像waitForSelctor()waitForUrl()这样的方法。我会使用这些方法之一,并将其​​设置为xpath,以获取上传确认消息或任何可以在页面上找到的表示上传成功的内容。唯一的另一种选择是等待足够长的时间来完成所有事情,这很容易,但从时间观点看并不理想。 :) –