我无法用rspec/capybara扩展accordeon节

我无法用rspec/capybara扩展accordeon节,rspec,capybara,Rspec,Capybara,我已经挣扎了一段时间,但我自己找不到解决方案,也找不到使用谷歌的好提示 这是我的手风琴密码 <div class="panel-group" id="accordion" > <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a href="collapse1" data-tog

我已经挣扎了一段时间,但我自己找不到解决方案,也找不到使用谷歌的好提示

这是我的手风琴密码

<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
或与

x = page.find_link('Oude Testament')
click_on(x)
x = find_link("a[href$='collapse1']")
或与

x = page.find_link('Oude Testament')
click_on(x)
x = find_link("a[href$='collapse1']")
当我调试时,我看到x被赋值,所以看起来不错。 但我从来没有看到手风琴打开(尽管它在浏览器中工作正常)


有什么提示吗?

单击按钮
单击链接或按钮
的别名,它从文档中获取链接或按钮的id、文本或值,而不获取元素。因此,假设您使用的是支持JS的驱动程序(不是机架测试),您应该能够使用以下任何一种

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选择器以查找它不需要的_链接。从文档中--它获取链接的id或文本。它还支持:href选项,因此要匹配您尝试执行的操作,它将是

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

将来,请发布您在尝试中遇到的实际错误,因为这将使人们更容易向您提供答案。

您使用的是什么驱动程序?我想我使用的是selenium,我找不到我已经配置了什么,所以默认值应该是selenium(对于未标记为
js:true
)的测试)是不支持JS的机架测试。如果您使用的是selenium,当您运行测试时,它将在您的桌面上打开一个firefox实例-如果没有,您使用的是rack test,没有JS会做任何事情-请参阅@andreheijstek you's welcome-如果这有助于您不要忘记接受答案(复选标记),那么问题将被标记为answeredWow,谢谢你的快速回答。但是,所有选项都会导致:'ActionController::RoutingError:No route matches[GET]“/collapse1”@andreheijstek,这可能表示您没有任何JS捕捉点击,因此正常的点击行为正在发生,并尝试跟随href。您的JS中有错误,或者您没有使用支持JS的驱动程序。OK。我现在已经在我的场景中添加了js:true(愚蠢,我应该知道这一点)。但现在,下一个断言的测试失败了期望(第页)有_内容(“创世记”)`这是我打开手风琴时显示的一行。因此,点击似乎仍然是不正确的working@andreheijstek因为它以前试图导航,而现在没有-点击正在做一些事情。在开发控制台中检查JS错误,检查您要查找的文本的大小写,等等。如果没有HTML,就不可能再说了。