现在我有一个网页,显示包含即将播放的歌曲的音频队列的列表。每个列表项实际上都是它自己的表单,其中的提交按钮将其值设置为特定的歌曲标题。
我试图编写一个功能测试,检查页面以确保它具有已添加到队列中的每首歌曲的内容,问题是capybara似乎没有'看'使用page.has_content时提交按钮的值。有办法解决这个问题吗?
答案 0 :(得分:2)
假设您的HTML有类似
的内容<input type="submit" value="Song name"/>
然后您想要使用has_button?
/ assert_button
/ have_button
方法。这是因为has_content?
会检查上述input
元素所没有的元素的文本子元素的内容。默认情况下,has_button?
(和关联)将匹配提交输入的id,value或title属性,但如果它是关键的,您可以指定特定的属性。在RSpec中,这看起来像
expect(page).to have_button('Song name')
或者如果歌曲名称可能与元素ID发生冲突,并且您希望100%确定它只是匹配值,那么
expect(page).to have_button(value: 'something')