使用VBA填充.aspx程序 - 字段消失

时间:2016-11-24 18:14:13

标签: javascript html asp.net vba vbscript

我正在尝试使用VBA在.aspx程序中填充多个字段。

虽然我可以填充已分配ID的字段,但我遇到了与没有ID或名称的按钮相关的问题。通过循环我可以找到的HTML并单击此按钮,但点击显示的隐藏字段立即消失。不会抛出错误,我想看到的隐藏字段只是在屏幕上瞬间闪烁并消失。

当我单步执行代码时 - 它没有问题,但是当我运行它时没有。

我认为速度可能是问题,但是在任何地方都插入了Sleep的高级别,并且没有修复。

====

仅供参考 - 在VBScript中,我可以使用按钮的功能运行它:

objIE.Document.parentWindow.execScript "addFileBox();", "javascript"

但如果我在VBA中尝试使用此代码的变体,则会出现“拒绝访问”错误。

====

这是VBA代码:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Dim objIE As Object
    Set objIE = CreateObject("InternetExplorer.Application")

    objIE.Visible = True
    objIE.navigate "http://xxxxxxxxx.com/xxxxxx/xxxxxxx.aspx"

    While objIE.Busy
      Sleep 100
    Wend

    objIE.Document.getElementById("ddlCategory").Value = "05"    'Works
    objIE.Document.getElementById("txtReference").Value = "150812"   'Works


    'Below added to find and click "Add Doc" button, it has no ID or name
    Dim Document As HTMLDocument
    Dim Elements As IHTMLElementCollection
    Dim SingleElement As IHTMLElement

    Set Document = objIE.Document
    Set Elements = Document.getElementsByTagName("INPUT")

    For Each SingleElement In Elements
         If SingleElement.Value = "Add Doc" Then
            SingleElement.Click
              Exit For
        End If
    Next SingleElement

Sleep 1000

如何修复VBA代码,以便字段不会在.aspx用户界面上消失?

0 个答案:

没有答案