标记看起来完全像这样:
<input type="file">
有没有办法让attach_file
使用它?
与此同时,我已经让开发人员为我添加了一个ID,但我尽量避免任何特殊要求。
答案 0 :(得分:2)
Capybara的#attach_field
基本上可以归结为find(:file_field, locator, options).set(path)
,它可以通过ID,名称或相关的标签文字找到。但是,如果您以另一种方式找到该元素,则可以使用该路径在其上调用#set
。另外需要注意的是(使用Capybara的最新版本)如果您在页面上只有一个文件字段,或者您的范围限定为只有一个文件字段的页面区域,则可以将nil
作为定位器,它只会找到'file'类型的任何输入。
所以
attach_file(nil, 'test.txt')
相当于
find('input[type="file"]').set('text.txt')
除了set
的示例将跳过Capybara对文件的存在测试