Ruby on rails 为什么可以';看到我的链接了吗?

Ruby on rails 为什么可以';看到我的链接了吗?,ruby-on-rails,rspec,Ruby On Rails,Rspec,这是我的html: <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle" href="#"> <i class="fa fa-user"></i> Register / Login <b class="caret"></b> </a> <ul class="dropdown-me

这是我的html:

<li class="dropdown">
    <a data-toggle="dropdown" class="dropdown-toggle" href="#">
        <i class="fa fa-user"></i> Register / Login <b class="caret"></b>
    </a>
    <ul class="dropdown-menu">
        <li>
            <a href="/sign_in"><i class="fa fa-fw fa-circle-o"></i> login </a>
        </li>
        <li>
            <a href="/sign_up"><i class="fa fa-fw fa-circle-o-notch"></i> Register </a>
        </li>

        <li class="divider"></li>
    </ul>
</li>
但是,规范失败,即使寄存器链接明显存在。如果我像这样将链接移出

<a href="/sign_up"><i class="fa fa-fw fa-circle-o-notch"></i> Register </a>
<li class="dropdown">
    <a data-toggle="dropdown" class="dropdown-toggle" href="#">
        <i class="fa fa-user"></i> Register / Login <b class="caret"></b>
    </a>
    <ul class="dropdown-menu">
        <li>
            <a href="/sign_in"><i class="fa fa-fw fa-circle-o"></i> login </a>
        </li>
        <li>

        </li>

        <li class="divider"></li>
    </ul>
</li>


  • 规格通过。为什么会这样?

    我猜你在用水豚

    水豚不会检测到隐藏的元素。 您需要单击“.dropdown toggle”元素,然后检查“Register”链接。 这只在使用javascript驱动程序时才起作用(selenium、poltergeist等)

    这是一个很好的方法——你在模拟真实的用户行为。 但是,您可以尝试


    您是否有可能拥有另一个名为“Register”的链接,但没有注册路径?“注册/登录”可能是个问题
    <a href="/sign_up"><i class="fa fa-fw fa-circle-o-notch"></i> Register </a>
    <li class="dropdown">
        <a data-toggle="dropdown" class="dropdown-toggle" href="#">
            <i class="fa fa-user"></i> Register / Login <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
            <li>
                <a href="/sign_in"><i class="fa fa-fw fa-circle-o"></i> login </a>
            </li>
            <li>
    
            </li>
    
            <li class="divider"></li>
        </ul>
    </li>
    
    it "should have Register link", js: true do
      find('.dropdown-toggle').click
      expect(page).to have_link('Register', href: registration_path)
    end