我试图在导航栏中找到一个链接,嵌套如下:
<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>
我尝试过使用以下方法,但没有一种方法有效:
find_link("via Twitter")
find_link("via Twitter", {href: "/users/auth/twitter?state=navbar_basic"})
find('div', {class: 'option'})
不确定如何抓住该元素......主要目标是通过click_link
测试链接。
编辑: 这是完整的HTML结构:
<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>
答案 0 :(得分:1)
我猜测菜单已折叠,您还没有做任何事情来打开它,因此该链接实际上并未在页面上显示。假设您只需要点击“#loggedoutmenu”&#39;用于打开菜单的项目,您可以执行类似
的操作find('#loggedoutmenu').click.click_link('via Twitter')
将点击“登录”菜单&#39;然后查找其中的链接,并在找到时单击该链接。如果点击“#loggedoutmenu&#39;不是您打开菜单的方式,那么您需要提供更多信息。
更新:您现在已经指示菜单在悬停时打开 - 因此假设用户必须将鼠标悬停在要单击的按钮的祖先上,您可以执行此操作
find('<css selector for the visible element the user needs to hover over>').hover.click_link('via Twitter')
答案 1 :(得分:1)
find('#navigation-butt').hover.click_link(href:"/users/auth/twitter?state=navbar_basic")
编辑:更新了我的答案,因为上一个解释不正确。