我正在使用 WebDriver 自动化网站,但我的文件下载需求与我在谷歌搜索时发现的有点不同。
我有一个创建订单的网站。当我单击“下订单”按钮时,它会将我重定向到“打印订单”页面。作为对我来说“方便”,这个页面在它的正文 onload 中自动启动下载操作,这意味着当我点击“下订单”按钮时,我转到一个新页面,然后立即出现一个文件下载对话框让我下载生成的pdf,从而阻止浏览器。
以下是我找到/想到的解决方案,以及为什么我不能使用它们:
配置 Firefox/Chrome 配置文件以静默下载文件。不能使用这个,因为我需要计时下载需要多长时间。
使用阻止下载的函数覆盖 window.open,并允许我获取 URL 并使用 wget 下载它。不能使用这个,因为文件下载是从下一页的onload函数开始的,所以我在这个页面上运行的任何javascript都会丢失。
取消onload函数或尝试在onload函数之前执行代码。在 webdriver 中找不到执行此操作的方法。
使用 wget 下载打印页面,修改 html 以更改 onload 处理程序,并将修改后的 html 注入回 selenium。找不到替换整个页面的方法,包括 <head> 和 <body> 标记和 URL。
不幸的是,我无法更改此网站的源代码,因为我在 QA 工作,而且我没有那种开发能力。有没有人对以可以定时的自动方式下载此文件的方法有任何想法?
谢谢。