我使用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
由于您将display设置为"none",而不是通过将其设置为屏幕外或其他方法进行隐藏,因此如果以上内容不,则make_visible选项可能会使其工作
attach_file('/file/to/be/attached', make_visible: true) do
click_link('Attach')
end
如果这两者都不起作用,那么Capybara就不可能像你在页面上实现文件上传的方式那样工作。
注意:这两种方法都很低,因为你从来没有真正将输入附加到页面上,所以事件不会被发送到Capybara可以检测到的任何地方。