Ruby on rails 如何检查表列是否有给定的文本?

Ruby on rails 如何检查表列是否有给定的文本?,ruby-on-rails,cucumber,Ruby On Rails,Cucumber,我正在做家庭作业,需要检查HTML表列是否给出了文本。我从web_steps.rb复制了这个示例,并尝试进行更改以满足我的需要,但测试失败。 步骤: 失败的步骤定义: Then /^(?:|I )should not see '([^']*)'$/ do |text| save_and_open_page if page.respond_to? :should page.find('#movies').should have_no_content(text) else

我正在做家庭作业,需要检查HTML表列是否给出了文本。我从web_steps.rb复制了这个示例,并尝试进行更改以满足我的需要,但测试失败。 步骤:

失败的步骤定义:

Then /^(?:|I )should not see '([^']*)'$/ do |text|
  save_and_open_page
  if page.respond_to? :should
    page.find('#movies').should have_no_content(text)
  else
    assert page.find('#movies').has_no_content?(text)
  end  
end
错误是:

期望#has#no_content?(“G”)返回true,得到false (RSpec::Expections::ExpectationNotMetError) /features/step_definitions/movie_steps.rb:35:in
/^(?:| I)不应看到“([^']*)”$/”
功能/过滤器电影列表。功能:37:在
中,我不应该看到“G”

电影是表的id。 表如下所示:


我被困在这里,不能再往前走了。有人能给我一些提示来解决这个问题吗?

它失败的原因是因为它在“PG”中看到了大写字母G。基本上,您希望看到的是在“评级”列下没有TD单元具有G评级,对吗?您可能希望在步骤中尝试使用XPath深入到TD,并检查整个单元格是否包含您的文本。

您可以尝试使用:

assert page.find('#movies').has_no_content?(">#{text}<")

assert page.find(“#movies”)。没有内容?(“>{text}谢谢,它可以工作。它甚至可以与
assert page.find(“#movies”)。没有内容?(“{text}”)
assert page.find('#movies').has_no_content?(">#{text}<")