使用rspec,ruby和capybara获取webelement的背景颜色

时间:2016-05-26 09:34:51

标签: ruby selenium rspec capybara

我想获得网页元素的背景色。我不确定ruby / capybara中的确切命令。 我们在自动化应用程序中使用ruby,selenium和capaybara。

2 个答案:

答案 0 :(得分:0)

据我了解capybara,它不是为节点操作开发的,而是利用查找/匹配元素。我建议将nokogiri用于此目的。

Capybara::Node::Element仅提供值和文字属性。

答案 1 :(得分:0)

Capybara不提供对元素的完整样式的直接访问,但您可以使用evaluate_script访问它。像

这样的东西
 page.evaluate_script("window.getComputedStyle(document.getElementById('my_element_id'))['background-color']")

应返回您要查找的内容 - 显然,如果元素没有id,则必须将window.getElementById更改为查找元素的其他方法。因为你正在使用selenium,如果你愿意使用不能与其他驱动程序一起使用的方法,并且已经在Capybara中找到了元素,你可以执行类似下面的操作,允许你传递元素而不是找出如何从JS <​​/ p>再次找到DOM中的元素

el = page.find(....) # however you've found the element in Capybara
page.driver.browser.execute_script("return window.getComputedStyle(arguments[0])['background-color']", el.native)