我无法用 rspec/capybara 扩展手风琴部分

I cannot expand an accordeon section with rspec/capybara

我已经苦苦挣扎了一段时间,但我自己找不到解决方案或使用 google 的好技巧。

这是我的手风琴代码

<div class="panel-group" id="accordion" >
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a href="collapse1" data-toggle="collapse" data-parent="#accordion" aria-expanded="true" aria-controls="collapse1" id="OT">
          Oude Testament
        </a>
      </h4>
    </div>
and so on for the underlying text and the second panel

我曾尝试使用 rspec/capybara 中的以下代码打开它:

x = page.find_by_id('OT')
click_on(x)

或与

x = page.find_link('Oude Testament')
click_on(x)

或与

x = find_link("a[href$='collapse1']")

当我调试时,我看到 x 被分配了,所以看起来不错。 但是我从来没有看到手风琴打开(虽然它在浏览器中工作正常)。

有什么建议吗?

click_onclick_link_or_button 的别名,来自文档 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#click_link_or_button-instance_method - 采用 link 或按钮的 ID、文本或值,它不带元素。因此,假设您使用的是支持 JS 的驱动程序(不是 rack-test),您应该能够使用以下任何一种

page.click_on('OT')
page.click_on('Oude Testament') 
page.click_link('OT')
page.click_link('Oude Testament')
page.find_link('OT').click
page.find_link('Oude Testament').click

您的第三次尝试 (find_link("a[href$='collapse1']")) 正在将 CSS 选择器传递给 find_link,但没有成功。从文档 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Finders#find_link-instance_method - 它需要 link 的 ID 或文本。它还支持 :href 选项,因此要匹配您尝试执行的操作,它将是

page.find_link(href: /collapse1$/).click

以后请 post 您尝试时遇到的实际错误,因为这将使人们更容易为您提供答案。