黄瓜+ webrat + selenium,如何忽略隐藏文字?

时间:2009-12-31 18:00:45

标签: ruby-on-rails selenium cucumber webrat

我正在使用Cucumber,webrat和selenium来测试Web应用程序。我使用'我应该看到“'来验证更改。但是,在许多地方,要验证的文本只会从隐藏更改为可见(这可能是由于从自身或其祖先中删除了'隐藏'类)。在这种情况下,上述测试实际上并未验证更改。我试图使用'response.should_not have_tag(“div#myId.hidden”)',这不起作用。推荐的测试方法是什么?

环境:黄瓜0.3.11,selenium-client 1.2.17,webrat 0.6.0

谢谢。

3 个答案:

答案 0 :(得分:5)

对于这些情况,我使用这两个自定义步骤:

Then /^the element matched by "([^\"]*)" should be visible$/ do |locator|
  selenium.should be_visible(locator)
end

Then /^the element matched by "([^\"]*)" should not be visible$/ do |locator|
  selenium.should_not be_visible(locator)
end

将它们放在step_definitions /目录下的Ruby文件中。

所以,在你的情况下,而不是然后我应该看到“某事”使用然后匹配“某事”的元素应该是可见的

答案 1 :(得分:3)

使用have_selector(“div#myId.hidden”)代替吗?

答案 2 :(得分:1)

接受的解决方案不适用于以下环境: Rails(3.0.0),webrat(0.7.3)selenium-client(1.2.18),黄瓜(0.10。)

现在可以使用答案中提供的示例运行解决方案:

Then /^the element matched by "([^\"]*)" should be visible$/ do |locator|
  selenium.is_visible(locator).should be_true
end

Then /^the element matched by "([^\"]*)" should not be visible$/ do |locator|
  selenium.is_visible(locator).should_not be_true
end