ruby on rails - How to find a link that has text nested in a div with Capybara? -


i'm trying find link in navbar, nested so:

<div class="menu logged-out" id="loggedoutmenu">   <a href="/users/auth/twitter?state=navbar_basic" data-no-instant>     <div class="option"> via twitter</div>   </a> </div> 

i've tried using following methods , none of them have worked:

  • find_link("via twitter")
  • find_link("via twitter", {href: "/users/auth/twitter?state=navbar_basic"})
  • find('div', {class: 'option'})

not sure how grab element... main goal test link via click_link.

edit: here's full html structure:

<body>  <div class="top-bar" id="top-bar">    <nav>     <--- other nav elements not listed --->     <div class="navigation-butt desktop" id="navigation-butt">        <div class="menu logged-out" id="loggedoutmenu">         <a href="/users/auth/twitter?state=navbar_basic" data-no-instant>           <div class="option"> via twitter</div>         </a>       </div>     </div>    </nav>   </div> </body> 

i'm guessing menu collapsed , haven't done open it, link isn't visible on page. assuming need click on '#loggedoutmenu' item open menu like

find('#loggedoutmenu').click.click_link('via twitter') 

which click on 'loggedoutmenu' link inside it, , click link when found. if clicking on '#loggedoutmenu' isn't how open menu you'll need provide more info.

update: have indicated menu opens on hover - assuming user has hover on ancestor of button want click can do

 find('<css selector visible element user needs hover over>').hover.click_link('via twitter') 

Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -