我想获得网页元素的背景色。我不确定ruby / capybara中的确切命令。 我们在自动化应用程序中使用ruby,selenium和capaybara。
答案 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)