Capybara Datalist选择不可见

时间:2018-04-26 06:43:47

标签: ruby cucumber capybara

我有以下HTML代码段:

<input type="text" id="manufacturer" list="manufacturers" placeholder="Search by manufacturer name or supplier code" class="form-control form-control-2-3" value="" name="manufacturer">


 <datalist id="manufacturers">
     <select>
      <div>
       <option value="Jaguar">AA</option>
       <div></div>
      </div>
      <div>
       <option value="Audi">AB</option>
       <div></div>
      </div>
     <div>
       <option value="Mercedes">AC</option>
       <div></div>
     </div>
     </select>
    </datalist>

这是一个下拉菜单,我想选择其中一个选项。无论我尝试使用任何find命令或选择功能。我总是得到同样的错误:

Selenium::WebDriver::Error::ElementNotVisibleError: element not visible: Element is not currently visible and may not be manipulated

有没有人对如何选择这些选项并选择一个选项有任何建议?

感谢。

1 个答案:

答案 0 :(得分:3)

您目前无法尝试做什么,因为它实际上并不是一个下拉选择元素。 &lt; datalist&gt;选项元素在页面上实际上永远不可见,因为标准声明“在渲染中,datalist元素不代表任何内容,它应与其子项一起隐藏。” - https://html.spec.whatwg.org/dev/form-elements.html#the-datalist-element。相反,任何&lt;选项&gt; datalist中的元素仅用作输入元素的自动填充建议(但实际上并不限制用户可以以任何方式输入的值)。因此,由于datalist用户只需在输入元素中输入他们想要的任何内容,您就可以像任何其他文本输入一样设置输入值。

fill_in("manufacturer", with: 'Jaguar')