我正在测试Capybara和Selenium。 这是我的检查:
<form id="fileuploadform" enctype="multipart/form-data" onsubmit="return false;" autocomplete="off">
<div class="NFI-wrapper nice" id="NFI-wrapper-14302252427892468" style="overflow: auto; display: inline-block;">
<div class="NFI-button NFI14302252427892468" style="overflow: hidden; position: relative; display: block; float: left; white-space: nowrap; text-align: center;">
Browse...
<input type="file" id="attachmentfiles" class="nice NFI-current" multiple="" data-styled="true" style="opacity: 0; position: absolute; border: none; margin: 0px; padding: 0px; top: 0px; right: 0px; cursor: pointer; height: 60px;">
</div>
<input type="text" readonly="readonly" class="NFI-filename NFI14302252427892468" style="display: block; float: left; margin: 0px; padding: 0px 5px;">
</div>
</form>
如果我尝试attach_file(“attachmentfiles”,“some_path”),我会收到错误消息:
Unable to find file field "attachmentfiles"
如果我通过所有(“输入”)[0]搜索相同的输入,我会得到以下内容:
Capybara::ElementNotFound: Unable to find field #<Capybara::Element tag="input">
标签'form'的行为方式相同。 我真的不明白在这种情况下我应该怎么做才能上传文件。
谢谢, 卢卡
答案 0 :(得分:0)
你能做的第一件事是定义:
Capybara.ignore_hidden_elements = false
另一个是,只需将visible: false
作为第3个参数添加到attach_file()