如何获得逐字 href 属性
How can I get verbatim href attribute
我在 html 页面中有一个页面内部 link:
<div class="bar">
<a href="#foo">Go to foo</a>
</div>
我使用 Capybara 匹配器选择了这个锚元素。当我尝试访问 href
属性时,该值扩展为完整 URL:
find(".bar a")[:href] # => "http://path/to/page#foo"
如何只获取内部 link,即逐字 href 值?
find(".bar a")... # => "#foo"
Capybara returns 支持 JS 的驱动程序中的 属性 href
(相对于属性),这是规范化的。要访问属性值,您需要使用 evaluate_script
link = find(".bar a")
evaluate_script("arguments[0].getAttribute('href')", link)
另一方面,如果您只想验证 link 是否具有特定的 href 属性,您可以使用 :link 选择器
expect(page).to have_link('Go to foo', href: '#foo')
或者通过 href 属性找到 link
link = find(:link, href: '#foo')
等...
我在 html 页面中有一个页面内部 link:
<div class="bar">
<a href="#foo">Go to foo</a>
</div>
我使用 Capybara 匹配器选择了这个锚元素。当我尝试访问 href
属性时,该值扩展为完整 URL:
find(".bar a")[:href] # => "http://path/to/page#foo"
如何只获取内部 link,即逐字 href 值?
find(".bar a")... # => "#foo"
Capybara returns 支持 JS 的驱动程序中的 属性 href
(相对于属性),这是规范化的。要访问属性值,您需要使用 evaluate_script
link = find(".bar a")
evaluate_script("arguments[0].getAttribute('href')", link)
另一方面,如果您只想验证 link 是否具有特定的 href 属性,您可以使用 :link 选择器
expect(page).to have_link('Go to foo', href: '#foo')
或者通过 href 属性找到 link
link = find(:link, href: '#foo')
等...