如何获得逐字href属性

时间:2017-05-10 09:38:11

标签: html ruby rspec capybara internal-link

我在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"

1 个答案:

答案 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')

等...