如何检查Capybara页面中是否存在URL /链接?

时间:2015-08-20 07:55:37

标签: ruby selenium rspec capybara automated-tests

我已经搜索了这么久但是还没找到任何解决方案。

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

例如:我想检查网址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()?感谢

2 个答案:

答案 0 :(得分:9)

以下两项应该有效:

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

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

答案 1 :(得分:1)

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