【问题标题】:How to test File Download dialog box using cucumber/capybara如何使用黄瓜/水豚测试文件下载对话框
【发布时间】:2011-03-17 11:16:22
【问题描述】:

我四处寻找,没有找到如何使用 capybara/cucumber 测试文件下载框?

下图把问题问得更清楚了。


【问题讨论】:

    标签: ruby-on-rails-3 rspec cucumber capybara


    【解决方案1】:

    这与我刚刚回答的另一个问题相似,希望对Anybody have idea how to test file download using cucumber?有帮助

    【讨论】:

    • 好吧,我试过了,但第一个'Content-Type'断言因失败/错误而爆炸:result = page.response_headers['Content-Type'].should == "application/octet-流”Capybara::NotSupportedByDriverError`
    • Capybara 有什么版本?我使用的是capybara (0.4.1.2)
    • OOOPS.. Capybara 有什么版本?我正在使用capybara (0.4.1.2)。在您的步骤中尝试puts page.methods.sort,看看您会得到什么。如果 response_headers 存在,请尝试puts page.response_headers
    • 我升级到 0.4.1.2。方法response_headers 确实响应但是当我尝试查找page.response_headers 时,我得到(rdb:1) p page.response_headers Capybara::NotSupportedByDriverError Exception: Capybara::NotSupportedByDriverError
    【解决方案2】:

    @Millisami Capybara::NotSupportedByDriverError 已为我修复!

    我必须做的是从我的黄瓜测试中删除 @javascript 标记,该标记已包含在内。我的意思是:

    @搜索 场景:接收文件 ...

    而不是

    @搜索 @javascript
    场景:接收文件 ...

    希望对你有帮助:-)

    【讨论】:

      【解决方案3】:

      下载框是浏览器的功能。 Capybara 模拟浏览器,但没有所有 UI 等。(例如,它看起来像您的应用程序的浏览器,因此使用它您通常会跳过整个文件下载 UI 内容。它看起来就像有人做了他们所做的任何事情一样需要告诉浏览器将文件放在哪里并开始下载)

      如果您正在尝试测试下载框(除了开始下载所需的单击之外),您现在正在测试浏览器,而不是您的应用程序。如果这是您章程的一部分并且值得您花时间,那么您自己。

      要实际测试下载框,您将必须运行一个浏览器实例,并使用 Firewatir/Watir 或 Selenium 之类的工具来实际“驱动”浏览器,并使用其他一些 gem 在操作系统 UI 级别(在 Windows 上我们通常使用 autoit),以便单击事物并填写浏览器文件下载 UI 的值。

      【讨论】:

      • 感谢您的解释。但我不再参与这个项目。正如您所解释的那样,它就像测试浏览器本身一样,我不会再费心寻找这样的测试了。
      猜你喜欢
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多