水豚:选择或单击下拉列表中的链接

Luc*_*eli 2 menu list click capybara

我一直在寻找答案,但找不到任何答案。也许我缺少了解水豚的一些基本概念。

我有一个下拉菜单,使用“ ul”

<ul class="dropdown-menu"> 
  <li id="dropdown-list"> 
    <span>myList</span> 
    <ul> 
      <li><%= link_to 'Link1', controller: 'link_1' %> </li> 
      <li><%= link_to 'Link2', controller: 'link_2' %> </li> 
    </ul> 
  </li>
  <li id="a_different_dropdown"> 
    <span>A different dropdown list</span>     
  </li> 
</ul>
Run Code Online (Sandbox Code Playgroud)

我想单击Link2。我唯一能做的是:

find('.dropdown-menu', :text => 'myList')
Run Code Online (Sandbox Code Playgroud)

从概念上讲:当我有一个下拉菜单时,是否需要将过程分为多个步骤?我的意思是,我是否必须单击选项myList以使子选项可见?

我尝试单击click,click_link并选择了方法,但由于经常出现错误,因此无法打开Link2:

Capybara::ElementNotFound:Unable to find link Link2
Run Code Online (Sandbox Code Playgroud)

Phi*_*hil 5

您可能必须先单击下拉列表。下拉菜单中的项目通常不可见。

find('#dropdown-list').click
Run Code Online (Sandbox Code Playgroud)

然后,您可以检查列表中的选项,然后查看其中的内容。

我不太确定您的HTML源代码是什么样子,但是很多时候可以从一行中选择一个选项:

find('#dropdown-list option', :text => 'foo').click
Run Code Online (Sandbox Code Playgroud)