0

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

我有一个创建订单的网站。当我单击“下订单”按钮时,它会将我重定向到“打印订单”页面。作为对我来说“方便”,这个页面在它的正文 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。

不幸的是,我无法更改此网站的源代码,因为我在 QA 工作,而且我没有那种开发能力。有没有人对以可以定时的自动方式下载此文件的方法有任何想法?

谢谢。

4

1 回答 1

0

在我看来,您有两个选择。

  1. 收到弹出窗口后,使用 AUTOIT 脚本下载文件,这将测试页面打开和下载的功能。
  2. 仅使用 http get 下载文件。这会错过页面加载的测试,但仍会检查文件是否存在。

您上面提到的其他测试似乎太复杂了。

于 2012-08-21T21:51:21.887 回答