【问题标题】:Automatic, timed file downloads with WebDriver使用 WebDriver 自动、定时下载文件
【发布时间】:2012-08-20 23:53:37
【问题描述】:

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

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

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

  1. 配置 Firefox/Chrome 配置文件以静默下载文件。不能用这个,因为我有下载时间的要求。

  2. 使用阻止下载的函数覆盖 window.open,并允许我获取 URL 并使用 wget 下载它。不能用这个,因为文件下载是从下一页的onload函数开始的,所以我在这个页面上运行的任何javascript都会丢失。

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

  4. 使用 wget 下载打印页面,修改 html 以更改 onload 处理程序,并将修改后的 html 注入回 selenium。找不到替换整个页面的方法,包括

    和 标记和 URL。

很遗憾,我无法更改此网站的源代码,因为我从事 QA 工作,而且我没有那种对开发的影响力。有没有人知道如何以可以定时的自动方式下载此文件?

谢谢。

【问题讨论】:

  • 我的意思是你可以在 selenium 上做到这一点,我只是不明白为什么,你没有在 UI 上测试任何东西,否则我认为这不是真正的 selenium 领域。这也是一个非常开放的问题。也许将来尝试更具体地缩小您的关注范围

标签: javascript file selenium download webdriver


【解决方案1】:

在我看来你有两个选择。

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

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

【讨论】:

猜你喜欢
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
  • 2016-12-15
  • 1970-01-01
  • 2015-10-12
  • 1970-01-01
相关资源
最近更新 更多