【问题标题】:How to check if url/links exist in page in Capybara?如何检查 Capybara 页面中是否存在 url/链接?
【发布时间】:2015-11-13 18:16:21
【问题描述】:

我已经找了很长时间了,但没有找到任何解决方案。

我想检查页面中是否存在特定的 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()?谢谢

【问题讨论】:

    标签: ruby selenium rspec capybara automated-tests


    【解决方案1】:

    以下两个应该可以工作:

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

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

    【讨论】:

    • 嗨@ndn!已经工作了好几天了:)非常感谢!我不知道have_link() 的第一个参数可以是空字符串。我用的是第一个。
    【解决方案2】:

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

    【讨论】:

    • 嗨@Vishnu 感谢您的回答。基于我上面的例子?我将如何应用您的答案?谢谢
    • 用您的示例 html 更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多