7

我拥有的 html 是由 ruby​​ 生成的:

<%= link_to "change", "http://gravatar.com/emails" %>

这导致:

<a href="http://gravatar.com/emails">change</a>

但我想确保链接在新选项卡中打开

target="blank"

属性

rspec 测试看起来像:

it { should have_link('change', href: 'http://gravatar.com/emails', target: '_blank') }

但是当我没有生成目标属性时,测试仍然通过。

4

2 回答 2

16

以下适用于 capybara 1.1.2:

it { should have_selector("a[href='http://gravatar.com/emails'][target='_blank']") }
于 2012-11-16T12:53:30.157 回答
0

我正在使用 have_selector 来处理每个属性:

should have_selector('a',
                     :href => 'http://gravatar.com/emails',
                     :target => '_blank',
                     :content => 'change'
                    )

我认为你需要水豚来拥有那个匹配器http://rubydoc.info/github/jnicklas/capybara/Capybara/RSpecMatchers/HaveSelector

于 2012-07-03T19:35:09.180 回答