在没有轨道的水豚中下载文件
Downloading file in capybara without rails
场景:尝试通过水豚访问外部网址以下载文件。硒或webkit必须用作驱动程序。无法使用机架测试,因为它不允许访问外部 URL。
该网站使用 iframe。
文件下载通过javascript提示,如下所示:
<a href="javascript:OpenFile('****.pdf', 2)">some_text_here</a>
单击该链接会提示本机浏览器下载确认框。我尝试了以下方法:硒驱动:
使用自定义配置文件 ->不起作用,弹出窗口仍然显示
Capybara.register_driver :selenium do |app| profile = Selenium::WebDriver::Firefox::Profile.new profile['browser.download.dir'] = "~/Downloads" profile['browser.helperApps.neverAsk.saveToDisk'] = "application/pdf" Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => >profile) end
在单击链接之前使用 JavaScript>不起作用
within_frame(1) do page.evaluate_script('window.confirm = function() { return true; }') find(:xpath,"//span[@class='BoldText']/a").click end
尝试使用警报 -即使出现下载框,也找不到警报 ->
page.driver.browser.switch_to.alert.accept -> No alert is present
网络套件驱动程序:
尝试使用 JavaScript -> 文件未下载
page.accept_confirm找不到任何链接
如何下载文件?
应用程序报告具有应用程序/八位字节流类型的文件。添加
profile['browser.helperApps.neverAsk.saveToDisk'] = "application/pdf, application/octet-stream"
在这种情况下解决了问题。
相关文章:
- 如何在生成下载文件时显示加载动画
- 直接下载文件,而不是从window.open(url)
- Javascript运行php文件,然后下载文件
- 在单击href链接的同时下载文件
- 通过javascript下载文件时设置文件名
- HTML锚标记无法在android平台中下载文件
- 链接/按钮从子文件夹下载文件--浏览器只是浏览
- iPhone强制下载文件
- 正在下载文件,同时加载另一个页面
- 如何在node.js中只下载文件的前10 KB
- 如何使用XMLHttpRequest下载文件
- 使用angular js在前端下载文件
- 使用blob从ajax结果下载文件
- 通过Android Chrome浏览器下载文件
- 使用AJAX下载文件.来自SD卡
- 如何使用phonegap从android中的URL下载文件
- 使用ajax下载文件
- 无法使用Angular JS和spring MVC打开下载文件
- 无法使用API-node.js从Google Drive下载文件
- 点击jQuery按钮下载文件