我正在使用Poltergiest驱动程序做无头浏览器以使用capybara Rspec测试我的rails应用程序。一切都很好。
但我无法弄明白默认下载目录是什么,如果我使用poltergeist下载文件或如何验证文件下载是否发生在按钮(链接)上。 < / p>
我正在测试的rails应用程序有一个按钮,单击该按钮可启动文件下载。我想测试下载文件-1-time-stamped.pdf。
到目前为止,我已尝试
我尝试了这个答案https://stackoverflow.com/a/16217485/3000299
page.response_headers['Content-Disposition'].should include("filename=\"file.zip\"")
使用上述方法是不可行的,因为文件名是动态的(文件名包含在服务器端完成的时间戳)。
有没有办法访问最近下载的文件?
任何建议或帮助都会很棒。
答案 0 :(得分:1)
最新发布的PhantomJS不支持下载文件,因此您只能使用检查response_headers的方法进行链接。你提到它是不可行的,因为文件名中有一个时间戳,但只要你不试图验证它的时间戳部分的确切值,就可以使用match
匹配器和正则表达式。像
page.response_headers['Content-Disposition'].should match(/filename="file-\d+\.pdf"/)
应匹配文件名,如file-1234.pdf