0

手动:

  1. 打开 IE
  2. 打开网址
  3. 单击 HTML 按钮(为了论证,按钮 1)
  4. 在弹出的对话框中单击确定等待客户端联系服务器,然后打开 Excel 工作表。

通过 VBA(我的代码目前执行此操作):

  1. 打开 IE 打开网址
  2. 单击 HTML 按钮(为了论证,按钮 1)

这一切正常,弹出对话框的显示与手动单击 Button1 时相同。但是,此时当我手动单击对话框上的确定按钮时,什么也没有发生!

我看不出有什么区别,因为两个序列中的最后一个动作是相同的(手动按下对话框的 OK 按钮)。

有没有人见过这种类型的问题?

编辑:

感谢您到目前为止的帮助,我应该提到我正在尝试与 Sharepoint 服务器上的 HTML 进行交互。下面是我的代码和html源代码。我知道我找到按钮的方法可能不是最强或最标准的,但这是我当时唯一可以用作搜索参数的方法。

我的 VBA:

'------------------------------- Open IE & URL
    Dim appIE As Object
    Dim URL As String

    URL = "http://OurSharePointServer/epr/default.aspx"
    Set appIE = CreateObject("InternetExplorer.Application")

    With appIE
        .navigate URL
        .Visible = True
    End With

    While appIE.Busy Or appIE.readyState <> 4: DoEvents: Wend
'---------------------------------------------

'------------------------------- Click "Raise New EPR" Button
    For Each htma In appIE.document.getElementsByTagName("img")
   '     Debug.Print htma.onclick
        If InStr(htma.onclick, "createNewDocumentWithProgID") > 0 Then
            Dim appExcel As Object
            Set appExcel = CreateObject("Excel.Application")
            appExcel.Workbooks.Add
            htma.Click
            Application.Wait (Now + TimeValue("0:00:10"))
            Exit For
        End If
    Next
'---------------------------------------------

按钮的 HTML 源代码:

<IMG 
onclick="createNewDocumentWithProgID('http:\u002f\u002fOurSharepointServer\u002fepr\u002fsubmit\u002fForms\u002fepr_.xls',    
'http:\u002f\u002fOurIntranet\u002fepr\u002fsubmit',    
'SharePoint.OpenDocuments', false)" 
src="../site%20images/epr_but.jpg" 
<a href="http://OurSharepointServer/epr/Submit">
4

1 回答 1

0

由于您没有指定更多内容,因此唯一的线索是将.focus()方法应用于HTML Button (Button1 for sake of argument)之前的那个.click(),并且.blur()对您正在与之交互的页面上的其他元素应用方法可能会有所帮助。通常,它可能是分配给这些事件之一的处理程序,最终导致这种行为差异。

于 2015-04-13T20:37:32.523 回答