2015-08-20 40 views
3

我一直在寻找这么久,但还没有找到任何解决方案。如何检查URL /链接是否存在于水豚的页面中?

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

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

水豚具有has_link功能,但只接受一个idtext为这个例子中的参数等等,

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

我应该怎么办使用水豚在Rspec的的expect()?由于

回答

8

以下两个应该工作:

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

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

+1

嗨@ndn!一直在这工作几天:)非常感谢你!我不知道'have_link()'的第一个参数可以是一个空字符串。我用了第一个。 –

1

水豚API提供了类似下面的方法 -

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

针对您的特殊例子中,你可以找到所有的元素,然后检查是否a是有具体的股利和形象。像下面 -

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

嗨@Vishnu谢谢你的回答。基于我上面的例子?我将如何应用你的答案?谢谢 –

+0

用您的示例html更新了答案 –