水豚如何检查给定 link 的 'li' 是否具有正确的 css class

Capybara how to check if 'li' of a given link has proper css class

嗨,我有这样的导航:

<nav class="navbar navbar-inverse">
    <div class="container">
      <ul class="nav navbar-nav">
        <li  >
          <a href="/">Strona Główna</a>
        </li>
        <li  class="active"  >
          <a href="/legendopedia">Legendopedia</a>
        </li>
        <li  ><a href="/pages/web_scrolls">Zwoje z Sieci</a></li>
        <li  >
            <a href="/users/sign_in">Zaloguj się</a>
        </li>
        <li>
            <a href="/users/sign_up">Zarejestruj się</a>
        </li>
      </ul>
    </div>
  </nav>

我想与 CAPYBARA 确认包含“/legendopedia”link 的 'li' 是否具有 css class:活动。

如果 .container 中只能有一个 active li div 你可以这样做

expect(page.find('div.container li.active')).to have_selector(:link, '', href: '/legendopedia')

这比你提到的有点落后,因为它正在检查 class 活动的 li 是否有 link 和相关的 href,但实际上是一样的。

另一种方法是使用 xpath

expect(page).to have_xpath("//li[.//a[@href='/legendopedia']][@class='active']")