gpt4 book ai didi

ruby-on-rails - 测试 div 在 rspec/capybara 中是否具有某种 css 样式?

转载 作者:行者123 更新时间:2023-12-04 06:31:53 26 4
gpt4 key购买 nike

不是重复:
How do you test if a div has a certain css style in rspec/capybara?

因为这些答案不适用于我的情况。

我有一个带有预览的网络表单;当您更改 Web 表单的某些部分时,预览会更新,我想在我的测试中检查这一点 - 所以我确实需要检查应用于 div 的样式。具体来说,我正在更新某些 div 的 background-color,我想检查是否发生了这种情况。

有任何想法吗?

最佳答案

据我所知,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>

您可以使用底层 Selenium 元素的 style (或 css_value )方法获取 div 的计算样式:
red_div = page.find(:css, '#red_div')
puts red_div.native.style('background-color')
#=> "rgba(255, 0, 0, 1)"

笔记:
  • native 是获取 Capybara 节点的底层 Selenium 元素的方法。
  • 您从 style 获得的值可能因浏览器而异。例如,对于背景颜色,我相信 IE 实际上会给你“红色”。
  • 关于ruby-on-rails - 测试 div 在 rspec/capybara 中是否具有某种 css 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23070894/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com