我目前正在测试一个生成并显示PDF作为页面的Web应用程序。这是在您登录的会话中完成的。
系统本身是用python编写的,但测试代码是使用Cuyumber编写的,使用Capybara和Poltergeist(phantomjs)支持的Cucumber。
有多种解决方案可用于测试pdf的内容,但访问或下载pdf是个问题。
使用capybara的访问命令:
page.visit "http://web_app_url/stuff/pdf_name.pdf"
或使用链接:
page.click_link("PDF")
导致失败并且不会移动到该页面。
使用此代码直接打开页面并保存pdf:
open('pdf_name.pdf', 'wb') do |file|
file << open("http://web_app_url/stuff/pdf_name.pdf").read
file.write("register.pdf")
end
这个问题是它在capybara会话之外运行,因此重定向到登录界面 - 给我一个可爱的pdf,其中包含登录屏幕的内容。
我想要做的是使用上面的代码,但是在capybara正在使用的会话中。但是,如果不可能,下一个最好的事情就是下载并保存文件。
任何想法都会很棒。谢谢。