是否可以在不使用 selenium 或 chrome 驱动程序的情况下在 Poltergiest 中测试文件下载

Is it possible to test file download in Poltergiest without using selenium or chrome driver

我正在使用 Poltergiest 驱动程序做无头浏览器来测试我的 rails 应用程序与水豚 Rspec。一切正常。

但我无法弄清楚默认下载目录是什么,如果我使用 poltergeist 下载文件或者如何验证文件下载是否发生在按钮上(link ) 点击。

我正在测试的 rails 应用程序有一个按钮,单击该按钮会启动文件下载。我想测试 file-1-time-stamped.pdf 是否已下载。

到目前为止我已经试过了

  1. 我试过这个答案

    page.response_headers['Content-Disposition'].should include("filename=\"file.zip\"")
    

使用上述方法不可行,因为文件名是动态的(文件名包含在服务器端完成的时间戳)。

  1. 我发现一个记录到 Poltergiest 的问题已关闭,建议在此处提问 https://github.com/teampoltergeist/poltergeist/issues/485

有没有办法访问最近下载的文件?

任何建议或帮助都会很棒。

最新发布的PhantomJS不支持下载文件,所以你只能使用你链接的方法检查response_headers。你提到这是不可行的,因为文件名中有一个时间戳,但只要你不试图验证它的时间戳部分的确切值,你就可以将 match 匹配器与正则表达式一起使用.像

page.response_headers['Content-Disposition'].should match(/filename="file-\d+\.pdf"/)

应该匹配像 file-1234.pdf

这样的文件名