我一直在苦苦挣扎一段时间,但无法自己找到解决方案或使用谷歌提供好的提示。
这是我的手风琴代码
<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被分配了,所以看起来很好。 但是我从来没有看到手风琴开启(虽然它在浏览器中可以正常工作)。
任何提示?
答案 0 :(得分:0)
click_on
是click_link_or_button
的别名,来自文档 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#click_link_or_button-instance_method - 获取链接或按钮的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(&#34; a [href $ =&#39; collapse1&#39;]&#34;))正在将CSS选择器传递给find_link,但它并没有这样做。从文档 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Finders#find_link-instance_method - 它需要链接的ID或文本。它还支持:href选项,因此要匹配您尝试执行的操作,
page.find_link(href: /collapse1$/).click
将来请发布您尝试的实际错误,因为它会让人们更容易为您提供答案。