我可以让 attach_file 在没有 ID 或 class 名字的情况下工作吗?
Can I get attach_file to work without an ID or class name?
标记看起来完全像这样:
<input type="file">
有什么方法可以让 attach_file
使用它吗?
在此期间,我已经要求开发人员为我添加一个 ID,但我尽量避免任何特殊要求。
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 对文件的存在性测试
标记看起来完全像这样:
<input type="file">
有什么方法可以让 attach_file
使用它吗?
在此期间,我已经要求开发人员为我添加一个 ID,但我尽量避免任何特殊要求。
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 对文件的存在性测试