我正在尝试检查数据表中的值是否正确,所以我要做的就是选择所有行并检查对象名称和我正在检查的值的某个特定的tr_content。问题是,我似乎无法在黄瓜中做return
:
Then /^I should see "([^"]*)" beside "([^"]*)"$/ do |value, name|
all("tr").each do |tr|
if tr.has_content?(value) && tr.has_content?(name)
assert true and return
end
end
assert false
end
我想要那样的东西。当我找到一个具有两个值的行时,那意味着它是正确的,我应该停止循环并返回true(否则它将继续到最后的assert false
)
我该怎么做?
答案 0 :(得分:1)
Then /^I should see "([^"]*)" beside "([^"]*)"$/ do |value, name|
has_value_and_name = false
all("tr").each do |tr|
if tr.has_content?(value) && tr.has_content?(name)
has_value_and_name = true
end
end
assert has_value_and_name
end
我不确定它是否适用于所有情况......但如果你有更好的解决方案,请发布它。谢谢!
答案 1 :(得分:0)
如果用Watir驱动浏览器你可以做到
matchvalue = regex.new(value)
matchname = regex.new(name)
browser.row(:text => matchvalue, :text => matchname).exists?.should = true
在你的情况下,做什么
Then /^I should see "([^"]*)" beside "([^"]*)"$/ do |value, name|
result = false
all("tr").each do |tr|
if tr.has_content?(value) && tr.has_content?(name)
result = true
break
end
end
result.should = true
end