Attach_file()找不到输入的id

时间:2015-04-28 13:02:56

标签: selenium capybara

我正在测试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'的行为方式相同。 我真的不明白在这种情况下我应该怎么做才能上传文件。

谢谢, 卢卡

1 个答案:

答案 0 :(得分:0)

你能做的第一件事是定义:

Capybara.ignore_hidden_elements = false

另一个是,只需将visible: false作为第3个参数添加到attach_file()