我的网页上有一个<th>
标记,其中包含“出勤”作为其CSS类。以下Cucumber步骤失败:
Then I should see "Name" within "th"
虽然这个过去了:
Then I should see "Name" within "th.attendance"
我真的必须使用这种特异性水平吗?我觉得,对于Cucumber来说,这需要对所测试的底层代码有太多的了解,而且它应该更通用一些。
换句话说,我怎么说“在'th'标签内找到'[value]'”?我想要这样做是错的吗?
答案 0 :(得分:3)
尝试以下方法。它使用xpath在给定的选择器中查找给定的文本。
"//#{selector}"
表示它应该找到与选择器匹配的标记。
"[contains(text(),'#{text}']"
表示标记文本应包含给定文本。
Then /^I should see "([^"]*)" within "([^"]*)"$/ do |text, selector|
find(:xpath, "//#{selector}[contains(text(),'#{text}')]").should_not(be_nil, "Could not find the text '#{text}' within the selector '#{selector}'")
end