当菜单由表格元素制成时(在网页上),VBA单击下拉菜单选项

时间:2019-03-10 17:58:30

标签: html excel vba

我正在尝试从下拉菜单中选择一个选项,该选项似乎设置在一个表中,其中每个选项已放入单独的tr / td元素中,如下所示:

<div class="MenuTableContainer">
  <table class="MenuTable" style="width: 175px;" cellspacing="0" cellpadding="0">
     <tbody class="MenuTableBody">
    <tr class="MenuTableRow">
       <td class="MenuEntryName" nowrap="">1 Heavy</td>
       <td class="MenuEntryNoSub" arvalue="1 Heavy"></td></tr>
    <tr class="MenuTableRow">
        <td class="MenuEntryName" nowrap="">2 Medium-Heavy</td>
        <td class="MenuEntryNoSub" arvalue="2 Medium-Heavy"></td></tr>
    <tr class="MenuTableRow">
        <td class="MenuEntryName" nowrap="">3 Medium-light</td>
        <td class="MenuEntryNoSub" arvalue="3 Medium-light"></td></tr>
    <tr class="MenuTableRow">
        <td class="MenuEntryNameHover" nowrap="">4 Light</td>
        <td class="MenuEntryNoSubHover" arvalue="4-Light"></td></tr>
</tbody></table></div>

到目前为止,单击我一直在使用的该网页上的任何其他元素:

Dim clickButton
Set clickButton= IE.document.getElementById("032345")
clickButton.Click

或执行相同的操作,但在没有可用ID的情况下使用.getElementsByClassName进行操作,而该操作没有任何问题。

但是,由于某些原因,我无法使用此菜单,除非我手动将鼠标悬停在菜单上,否则它将不会单击任何内容,在这种情况下,它将单击具有指针的任何选项,而忽略类名并完全定位。

我还尝试过使用“ MenuEntryNoSub”类,以为它可能是某种不可见的按钮,但是运行脚本时却什么也没发生。

对于.getElementsByClassName,它调试时会使用“ MenuEntryName”为每个元素打印正确的TextContent。

Debug.Print IE.document.getElementsByClassName("MenuEntryName")(1).textContent

但是,当我尝试使用以下代码单击它时,它什么也没做:

Dim chooseOption
Set chooseOption = IE.document.getElementsByClassName("MenuEntryName")(1)
chooseOption.Click

非常感谢任何有关我可能做错事情的提示-预先感谢

0 个答案:

没有答案