【发布时间】:2012-08-20 23:53:37
【问题描述】:
我正在使用 WebDriver 自动化网站,但我的文件下载需求与我在谷歌搜索时发现的略有不同。
我有一个创建订单的网站。当我单击“下订单”按钮时,它会将我重定向到“打印订单”页面。作为对我来说“方便”,这个页面在它的正文 onload 中自动启动下载操作,这意味着当我点击“下订单”按钮时,我转到一个新页面,然后立即出现一个文件下载对话框让我下载生成的pdf,从而阻止浏览器。
以下是我找到/想到的解决方案,以及为什么我不能使用它们:
配置 Firefox/Chrome 配置文件以静默下载文件。不能用这个,因为我有下载时间的要求。
使用阻止下载的函数覆盖 window.open,并允许我获取 URL 并使用 wget 下载它。不能用这个,因为文件下载是从下一页的onload函数开始的,所以我在这个页面上运行的任何javascript都会丢失。
取消onload函数或尝试在onload函数之前执行代码。在 webdriver 中找不到执行此操作的方法。
-
使用 wget 下载打印页面,修改 html 以更改 onload 处理程序,并将修改后的 html 注入回 selenium。找不到替换整个页面的方法,包括
和 标记和 URL。
很遗憾,我无法更改此网站的源代码,因为我从事 QA 工作,而且我没有那种对开发的影响力。有没有人知道如何以可以定时的自动方式下载此文件?
谢谢。
【问题讨论】:
-
我的意思是你可以在 selenium 上做到这一点,我只是不明白为什么,你没有在 UI 上测试任何东西,否则我认为这不是真正的 selenium 领域。这也是一个非常开放的问题。也许将来尝试更具体地缩小您的关注范围
标签: javascript file selenium download webdriver