验证页面上至少有一个表行包含任意数量的字符串

时间:2016-02-08 20:49:27

标签: ruby cucumber capybara

我认为更容易用伪代码解释:

page.all('tr').each do |tr|
    if tr.has_text?(string1) and tr.has_text?(string2) # and so on...
        # Pass the test!
    end
end
# Else fail the test

是否存在使用Capybara和Ruby / Cucumber执行此测试的有效方法?

2 个答案:

答案 0 :(得分:1)

以下内容应该是您尝试做的事情

strings = [string1, string2, ...]
found = page.all('tr').any? do |tr|
  strings.all? { |s| tr.has_text?(s, wait: 0) }
end
expect(found).to be true

答案 1 :(得分:0)

以下代码片段可以有效地验证页面上是否至少有一个包含任意数量字符串的表格行:

found = false
  page.all(:css, 'tr').each do |row|
    if row.text != ""
      found = true
    end
  end
found.should eq true

希望这会有所帮助:)