2012-01-10 61 views
0

我使用无头watir-webdriver,我知道一个特定的动作,browser.div.click提示文件下载。我知道当你使用FF时,你可以指定一个文件夹来下载文件,但是我怎样才能处理无头文件下载?有没有办法指定一个文件夹,或者更好的将它读入内存?如何使用watir-webdriver处理无头文件中的文件下载?

任何帮助,将不胜感激。

+0

哇,这是一个艰难的。我可能会在稍后尝试着看。但本能告诉我这是一个跳过自动化的测试。 – 2012-01-11 17:07:34

+0

我其实不是为了测试目的而是为了从JavaScript中编写的网站获取信息。我知道watir是为测试而构建的,但我正在寻找一种与javascript网站交互的方式。机械化没有这种功能,我无法找到任何其他选项。 – asahi 2012-01-11 20:53:50

+0

然后尝试使用浏览器。如果这不起作用,请尝试使用专业的抓取工具。祝你好运。 – 2012-01-11 21:52:28

回答

0

我不确定这是否适合测试无头。怎么会有无头脑提示用户?我想你必须告诉它在哪里发送文件。这可能是更多的webdriver人的问题,这是他们的基本功能。你可能只需要直接调用它。

该网站是否实现REST接口或直接获取文件的方式?也许试试cURL或REST-CLient?

如果主要目的只是下载文件,那么您的第一个挑战就是看看您是否能够从网页代码中找出文件的URL。如果你可以确定,那么看一下你可以使用它的cURL gem(或者只是从命令行cURL)来调用一个获取文件下载的HTTP地址的get,然后将它保存到一个文件或使用它在内存中根据需要

+0

该网站没有实现直接获取文件的方式,没有。基本上,我点击一个div,我会得到提示下载文件(如果我使用浏览器) – asahi 2012-01-14 21:21:53

+0

@shig什么是div的html?我不认为你可能很了解如何通过http传输文件。保存提示来自浏览器。 – 2012-01-18 00:08:26

+0

也许我不理解文件传输是如何工作的,在这种情况下,我希望能够提供给我更多的信息。如果我做了类似browser.div(:id,“download-file”)的点击,那么如果我使用的是浏览器,则会提示浏览器下载,但理想情况下我想这样做。希望这是有道理的。 – asahi 2012-01-18 04:58:49

0

可能的解决方案是更改配置文件设置,以在浏览器中显示二进制内容而不是打开下载对话框。

相关问题