我在html页面中有一个页面内部链接:
<div class="bar">
<a href="#foo">Go to foo</a>
</div>
我使用Capybara匹配器选择了这个锚元素。当我尝试访问href
属性时,该值将扩展为完整网址:
find(".bar a")[:href] # => "http://path/to/page#foo"
如何才能获得内部链接,即逐字href值?
find(".bar a")... # => "#foo"
答案 0 :(得分:2)
Capybara在JS驱动的驱动程序中返回属性href
(而不是属性),这是规范化的。要访问属性值,您需要使用evaluate_script
link = find(".bar a")
evaluate_script("arguments[0].getAttribute('href')", link)
另一方面,如果您只是想验证链接是否具有该特定的href属性,您可以使用:link selector
expect(page).to have_link('Go to foo', href: '#foo')
或通过href属性找到链接
link = find(:link, href: '#foo')
等...