使用WebDriver自动下载定时文件

时间:2012-08-20 23:53:37

标签: javascript file selenium download webdriver

我使用WebDriver自动化网站,但我的文件下载需求与我在google搜索时发现的有点不同。

我有一个创建订单的网站。当我点击“下订单”按钮时,它会将我重定向到“打印订单”页面。作为一个“方便”的我,这个页面自动启动其体内onload下载操作,这意味着当我点击“下订单”按钮,我转到一个新页面,然后立即出现一个文件下载对话框,让我下载生成的pdf,从而阻止了浏览器。

以下是我发现/想到的解决方案,以及为什么我不能使用它们:

  1. 配置Firefox / Chrome配置文件以静默方式下载文件。不能使用它,因为我需要计算下载所需的时间。

  2. 使用阻止下载的功能覆盖window.open,并允许我抓取URL并使用wget下载它。无法使用此项,因为文件下载是从下一页的onload函数启动的,因此我在此页面上运行的任何javascript都将丢失。

  3. 取消onload函数或尝试在onload函数之前执行代码。在webdriver中找不到这样做的方法。

  4. 使用wget下载打印页面,修改html以更改onload处理程序,并将修改后的html注入selenium。无法找到替换整个页面的方法,包括< head>和< body>标记和URL。

  5. 不幸的是,我无法更改此网站的源代码,因为我在QA中并且我没有那种杠杆与开发。有没有人想过以自动方式下载这个文件的方法可以定时?

    感谢。

1 个答案:

答案 0 :(得分:0)

对我来说,你有两个选择。

  1. 收到弹出窗口后,使用AUTOIT脚本下载文件,这将测试页面打开和下载的功能。
  2. 只使用http get下载文件。这会错过测试页面加载但仍会检查文件是否存在。
  3. 上面提到的其他测试似乎太复杂了。