0

我想自动化一个具有名为“时间表”的下拉菜单的站点,然后单击列表中第三个的菜单项“项目”。

这是HTML代码:

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav">
                    <li class="dropdown">
                        <a href="#" ng-click="$event.preventDefault()" title="Timesheet" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="glyphicon glyphicon-time"></span> Timesheet <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a ui-sref="AddTime" title="Add time" href="/Timesheet/AddTime/">Add time</a></li>
                            <li><a ui-sref="ApproveTime" title="Approve time" href="/Timesheet/ApproveTime">Approve time</a></li>
                            <li><a ui-sref="Projects" title="Projects" href="/Timesheet/Admin/Projects">Projects</a></li>
                            <li><a ui-sref="BudgetCode" title="Budget Code" href="/Timesheet/Admin/BudgetCode">Budget Code</a></li>
                            <li><a ui-sref="WorkCode" title="Work Code" href="/Timesheet/Admin/WorkCode">Work Code</a></li>
                            <li><a ui-sref="Functions" title="Functions" href="/Timesheet/Admin/Functions">Functions</a></li>
                            <li><a ui-sref="WorkStreams" title="Work Streams" href="/Timesheet/Admin/WorkStreams">Work Streams</a></li>
                            <li><a ui-sref="EmployeeResource" title="Employees" href="/Timesheet/Admin/EmployeeResource">Employees</a></li>
                        </ul>
                    </li>
                </ul> 
            </div>

VBA 代码: Private Sub IE_Test() Dim i As Long Dim IE As Object Dim ElementCol As Object

' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")

'IE.Visible = False

IE.Navigate "http://st-toss/"

' Wait while IE loading...
Do While IE.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop

IE.Visible = True

Set ElementCol = IE.Document.getElementsByClassName("dropdown-menu")

ElementCol.Item(2).Click

' Clean up
Set IE = Nothing
Set objElement = Nothing
Set objCollection = Nothing

Application.StatusBar = ""

结束子

我尝试按类名/标记名进行选择,但是一旦我没有添加任何断点,我就会收到相同的错误自动化错误/未指定错误。一旦我将断点放在 get 方法错误消息上,就会说调用的对象与客户端断开连接。

请建议我如何才能度过难关。

VBA 参考资料

4

1 回答 1

0

ElementCol 是“下拉菜单”类中的元素集合。(您在设置 getElementsByClassName 时创建了此集合。请注意,“Elements”是复数。)

该类中有多少元素,您需要哪一个?
如果这是该类中唯一的元素,那么您可以通过以下方式引用它:

elementCol(0).selectedIndex = 2

或类似的东西。

于 2016-12-15T14:32:52.070 回答