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

时间:2016-12-29 19:50:41

标签: capybara poltergeist

我正在使用Poltergiest驱动程序做无头浏览器以使用capybara Rspec测试我的rails应用程序。一切都很好。

但我无法弄明白默认下载目录是什么,如果我使用poltergeist下载文件或如何验证文件下载是否发生在按钮(链接)上。 < / p>

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

到目前为止,我已尝试

  1. 我尝试了这个答案https://stackoverflow.com/a/16217485/3000299

    page.response_headers['Content-Disposition'].should include("filename=\"file.zip\"")
    
  2. 使用上述方法是不可行的,因为文件名是动态的(文件名包含在服务器端完成的时间戳)。

    1. 我发现有一个问题记录到Poltergiest,该问题已经结束,建议在此处提出问题https://github.com/teampoltergeist/poltergeist/issues/485
    2. 有没有办法访问最近下载的文件?

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

1 个答案:

答案 0 :(得分:1)

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

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

应匹配文件名,如file-1234.pdf