如何使用 Capybara 测试 React Dropzone Rails 5.2

How to test React Dropzone with Capybara Rails 5.2

我正在尝试使用 Selenium 在 Capybara 中测试文件上传,Rails 5.2 功能规范。

我一直在搜索这个并找到了一些建议。其中之一是

但是,这些解决方案适用于 jQuery 和 Dropzone.js。有人对此有解决方案吗?

魔法密码:

        find('input[type="file"]', visible: false).send_keys \
            Rails.root.join('spec', 'resources', 'test.png')

99% 的时间将 visible: false 作为 find 的选项传递表明您在使用 Capybara 测试应用程序时做错了。

如果您尝试做的只是在出于样式原因隐藏文件输入时上传文件,那么 Capybara 文档会提供所有需要的信息 - https://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#attach_file-instance_method - 以及专门用于处理这种情况的选项

attach_file(Rails.root.join('spec', 'resources', 'test.png'), make_visible: true)