我使用以下 html 堆栈创建了自定义上传表单:
<form>
<label></label>
<input type="file">
</form>
文件字段通过具有display: none
属性的 css 隐藏。因此,当她单击标签(自定义样式)时,用户会调用文件附加对话框。
在我的功能测试中,由于输入字段被隐藏,我无法附加文件。我尝试了一些可能的解决方案,但它们都不起作用:
find(:xpath, '//input', visible: false).set(some_file_path)
或者
within('form') do
attach_file(:input, some_file_path, visible: false)
end
还有许多其他人。一直以来,我都会遇到 Failed to click element at unknown position 错误。一旦我删除了与输入字段重叠的标签,使其可见并运行我的规范,一切都通过了。所以这里的问题是:
- 输入文件字段具有
display: none
属性(因此无法找到) - 有一个标签与隐藏文件字段重叠(可能)
有没有办法让 Capybara 和 Capybara-webkit 驱动程序以某种理智的方式处理这种微妙的情况?