Nar*_*tor 3 ruby-on-rails capybara
不重复: 你如何测试div在rspec/capybara中是否具有某种css风格?
因为那些答案对我的案子不起作用.
我有一个带预览的webform; 当您更改Web表单的某些部分时,预览会更新,我想在我的测试中检查这一点 - 所以我确实需要检查应用于div的样式.具体来说,我正在更新background-color某些div,我想检查这是否已经发生.
有任何想法吗?
据我所知,Capybara没有用于获取元素的计算样式的API.但是,由于您使用的是Selenium-Webdriver,因此可以下拉到Selenium元素并使用该style方法.
例如,考虑以下页面有一个div元素,其样式通过javascript更新:
<html>
<body>
<div id="red_div">
background applied by javascript
</div>
<script>
document.getElementById("red_div").style.background = "red";
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您可以使用底层Selenium元素的style(或css_value)方法获取div的计算样式:
red_div = page.find(:css, '#red_div')
puts red_div.native.style('background-color')
#=> "rgba(255, 0, 0, 1)"
Run Code Online (Sandbox Code Playgroud)
注意:
native 是获取Capybara节点的底层Selenium元素的方法.style可能因浏览器而异.例如,对于背景颜色,我相信IE实际上会给你"红色".| 归档时间: |
|
| 查看次数: |
3620 次 |
| 最近记录: |