如果我有一些HTML:
<div id='drawer'><ul><li><a href='www'>description</a>...
我已经看到我可以在Capybara获得href的值:
page.find('div#drawer a')['href']
但如果将其完全描述为css字符串,是否有任何方法可以检索该值?即,试图获得'div#drawer a [href]'
的值我尝试过这样的表达式:
page.find('div#drawer a[href]') => can't convert Capybara::Node::Element into String (TypeError)
page.find('div#drawer a[href]').value => can't convert nil into String (TypeError)
page.find('div#drawer a[href]').text => returns the text value of 'description'
我在外部配置文件中有css表达式,所以是否可以直接使用它并检索有问题属性的值?
谢谢...
答案 0 :(得分:56)
可能为时已晚。但我也有同样的问题,并找到了解决方案。它可能会帮助别人。
page.find('div#drawer a')[:href]
答案 1 :(得分:2)
我能够做到这一点的唯一方法是使用jQuery。
href = page.evaluate_script("$('a.link_class').attr('href');")
答案 2 :(得分:0)
如果您正在寻找具有给定属性的给定值的HTML元素,则可以执行以下操作:
expect(page).to have_css('a[href="www"]')