如何检查水豚页面中是否存在url/links?

How to check if url/links exist in page in Capybara?

我已经找了这么久了,还是没有找到任何解决办法。

我想检查页面中是否存在特定的 URL。 Rspec水豚

例如:我想检查 url http://project/guides/basics/ 是否在页面中。

capybara 具有 has_link 功能,但只接受 idtext 作为参数,因此对于此示例,

<a href='http://project/guides/basics/'>
    <div class='image-button-container'>
        <img src='/images/basic_img.png'/>
    </div>
</a>

我应该如何使用 Capybara 在 Rspec 中执行 expect()?谢谢

Capybara API 提供如下方法 -

page.should have_link("Foo")
page.should have_link("Foo", :href=>"googl.com")
page.should have_no_link("Foo", :href=>"google.com")

对于您的特定示例,您可以找到所有元素,然后检查 a 是否包含特定的 div 和图像。如下所示 -

page.all("a[href='http://project/guides/basics/'] div img")[0]['src'].should be('/images/basic_img.png')

以下两个应该有效:

expect(page).to have_link('', href: 'http://project/guides/basics/')
expect(page).to have_selector("a[href='http://project/guides/basics/']")

我真的希望有更好看的方法,但不幸的是,我找不到。