可以通过点击水豚来附加文件
It is possible to attach files by clicking on capybara
我正在使用 capybara
、cucumber
和 webDriver
来执行文件测试
我正在做一个研究,需要附加一个文件,但是文件input
在dom
中不存在,只有在点击按钮时才会创建,目前我的代码是这样的:
HTML
<a id="input-id" href="#" onClick="callInput">Attach</a>
脚本
function callInput(){
const input = document.createElement("input");
input.style.display = "none";
input.type = "file";
input.click();
}
如果可能的话,唯一的方法就是使用 attach_file
块模式
attach_file('/file/to/be/attached') do
click_link('Attach')
end
由于您将显示设置为 'none' 而不是通过将其设置为屏幕外或其他方法进行隐藏,因此如果上述方法无效,make_visible 选项可能会使它起作用
attach_file('/file/to/be/attached', make_visible: true) do
click_link('Attach')
end
如果这些都不起作用,那么 Capybara 就无法使用您在页面上实现文件上传的方式。
注意:这两种方法都有效的可能性很低,因为您实际上从未将输入附加到页面,因此事件不会被路由到 Capybara 可以检测到的任何地方。
我正在使用 capybara
、cucumber
和 webDriver
来执行文件测试
我正在做一个研究,需要附加一个文件,但是文件input
在dom
中不存在,只有在点击按钮时才会创建,目前我的代码是这样的:
HTML
<a id="input-id" href="#" onClick="callInput">Attach</a>
脚本
function callInput(){
const input = document.createElement("input");
input.style.display = "none";
input.type = "file";
input.click();
}
如果可能的话,唯一的方法就是使用 attach_file
块模式
attach_file('/file/to/be/attached') do
click_link('Attach')
end
由于您将显示设置为 'none' 而不是通过将其设置为屏幕外或其他方法进行隐藏,因此如果上述方法无效,make_visible 选项可能会使它起作用
attach_file('/file/to/be/attached', make_visible: true) do
click_link('Attach')
end
如果这些都不起作用,那么 Capybara 就无法使用您在页面上实现文件上传的方式。
注意:这两种方法都有效的可能性很低,因为您实际上从未将输入附加到页面,因此事件不会被路由到 Capybara 可以检测到的任何地方。