根据不透明度检查元素的可见性

时间:2012-03-12 19:04:49

标签: capybara

我有一个按钮点击隐藏的元素,但出于美观的原因,我们通过更改不透明度来隐藏它。如何使用Capybara检查此元素的不透明度是否为0?

<div class="row lower-section" style="opacity: 0; ">

不幸的是is_visible()doesn't check CSS。

谢谢,

麦克

2 个答案:

答案 0 :(得分:1)

我会尝试使用xpath找到按钮并检查其样式标记。 像......一样......

page.should have_xpath(:xpath, "//div[@class='row lower-section' @style='opacity: 0;')

应该有用。

查看文档以获取更多信息 https://github.com/jnicklas/capybara

答案 1 :(得分:1)

我发现jQuery最适合这些事情。我发现使用xpaths太过于善变 - 特别是如果你进行网络测试而不是机架测试。我会做这样的事情:

Given I do something
Then I should see that "element" has "opacity" value "0"

Then /^I should see that "([^\"]*)" has "([^\"]*)" value "([^\"]*)"$/ do |element,   
   property,value|
 @result = page.evaluate_script("$('#{element}').css('#{property}');")
 @result.should eql(value), "expected #{property} on #{element} to be #{value}"
end