我在 CI 系统中使用 Selenium 来自动测试我的各种应用程序,其中之一是一个 Web 表单,其中包含我们答案的可下载副本(作为动态生成的 PDF)。该测试是为了断言可下载的 PDF 文件包含正确的答案(在网络表单上给出的答案)。我的问题是尝试处理下载对话框以检索 PDF 文件(断言 PDF 的内容正确超出了此问题的范围)。
我花了一段时间寻找处理它的方法,我发现的一些相关的东西是 AutoIT ,更改默认下载位置并让浏览器自动下载文件,然后 asserting the link works without downloading the file 。不幸的是,我的情况排除了所有三种可能性。
- 我使用多种浏览器(排除自动下载,因为某些浏览器不支持此功能)。
- 我正在使用多种平台(排除 AutoIT,这是一款仅限 Windows 的应用程序)。
- PDF 中的内容是根据之前与应用程序的交互动态生成的,测试是断言生成的内容是否与预期值匹配,因此仅检查链接是否存在是不够的。
因为显示的下载对话框是由操作系统管理的,所以我不确定是否可以使用 Selenium 来实现我的目的,但是我想我会先询问是否有人知道使用 Selenium 的任何解决方案,或者可以推荐一些其他可接受的测试方法?
最佳答案
据我所知,由于您自己所说的原因,您不能使用 Selenium 来实现这一点。然而,我认为解决这个问题的最好方法是直接下载生成的pdf而不使用selenium。既然您知道它的 url,您也许可以使用 this article 中概述的方法。它描述了如何使用“Powder-Monkey”来完成您想做的事情。
关于selenium - 下载文件对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17992957/