在 JS 隐藏下拉菜单中选择 link

Selecting link in JS hidden dropdown menu

我有一个 JavaScript 隐藏下拉菜单,它不会显示 link,除非鼠标悬停在它上面。我正在尝试使用 ruby watir-webdriver 在此菜单中 select link。我可以使用在下拉菜单中显示内容的 .hover select link。但是我在 selecting 菜单中的任何 link 时遇到问题。在这种情况下,我想单击 link "item1"。 这是 html 代码:

    <script type="text/javascript">
    <div id="menuWHeader" class="menuWf">
    <span class="menuTitle" onclick="goWindow(oprWin)"  onmouseout="menuCollapse('menuWContent')" onmouseover="menuExpand('menuWContent')"> window </span>
    <table id="menuWContent" class="menuContent" onmouseout="menuCollapse("menuWContent")" onmouseover="menuExpand("menuWContent")" style="visibility: hidden;">
    <tbody>
    <tr>
    <td class="menuItemNormal" onclick="goWindow(oprWin)" onmouseout="menuNormal(this)" onmouseover="menuSelect(this)">
    <img id="imgMenuWindow1" alt="" src="https://<myurl>/images/check-none.gif">
    item1
    </td> 
    </tr>
    <tr style="display:none">
    <td onclick="goWindow(crtWin)" onmouseout="menuNormal(this)" onmouseover="menuSelect(this)">
     <img id="imgMenuWindow2" alt="" src="https://<myurl>/images/check-none.gif">
    item2
    </td>
    </tr>
    <tr>
    <td class="menuItemNormal" onclick="goWindow(libWin)" onmouseout="menuNormal(this)" onmouseover="menuSelect(this)">
    <img id="imgMenuWindow3" alt="" src="https://vts42.commstor.crossroads.com/images/check-none.gif">
    item3
    </td>
    </tr>

第二个 table 行项目 "item2" 被隐藏并且不显示在菜单上(在代码中显示为灰色)。因此,当我将鼠标悬停在菜单上时,只有 item1 和 item3 在菜单上可见。

如前所述,我可以将鼠标悬停在菜单标题 "window" 上,然后显示菜单项。我无法 select 列表中的任何项目。现在我只是想 select item1。下面是悬停在菜单上的 watir 代码。

 wb.div(:id => 'menuWHeader').span(:class =>'menuTitle').hover

我已经尝试了很多没有用的东西,所以我认为发布我失败的尝试没有任何意义。任何帮助表示赞赏。

您似乎想单击 td 个元素。这是基于那些元素具有 onclick 属性的 HTML。

看起来元素的唯一独特之处是 属性 文本。根据页面上的表格数量,您可以执行以下操作:

wb.td(text: 'item1').when_present.click

如果还有其他表,您可能希望将搜索范围限定为 header div:

wb.div(:id => 'menuWHeader').td(text: 'item1').when_present.click

请注意,包含 when_present 方法是为了确保 Watir 在尝试单击 td 之前等待菜单出现。