2015-11-05 2 views
1

Привет У меня есть сча вроде этого:Капибара как проверить «ли» данного звена имеет собственный класс CSS

<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="https://stackoverflow.com/users/sign_in">Zaloguj się</a> 
     </li> 
     <li> 
      <a href="https://stackoverflow.com/users/sign_up">Zarejestruj się</a> 
     </li> 
     </ul> 
    </div> 
    </nav> 

И я хочу, чтобы проверить с Капибара, если «ли», что containts «/ ссылка legendopedia 'имеет класс css: active.

ответ

1

Если может быть только один активный литий в .container DIV вы можете сделать это, как

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

который немного назад от того, что вы упомянули, так как это проверить, что литий с классом активного имеет ссылку с соответствующим href в нем, но фактически то же самое.

Другим способом было бы использовать XPath

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

Первый возвращает мне ошибку: 'Не удается найти CSS«div.conatiner li.active»', но второй работает отлично. В конце концов я понял, что это нужно сделать таким образом, я пошел домой и ударил! ваш ответ. Большое спасибо :) – Kazik

+0

Похоже, я ошибочно упаковал контейнер в первом примере, он тоже должен работать –

Смежные вопросы