我正在与VBA合作,以自动执行重复性任务。我的应用程序有一个包含大量数据的页面(此页面至少有1000条记录)和几个按钮。 单击按钮之一应重定向到新页面。我的脚本一直等到带有记录的页面完全加载后,单击该按钮,并且单击按钮时,它应该加载新页面,但它只是加载同一页面,而不是重定向到新页面。但是当手动单击按钮时,将加载新页面。
按钮html:
<input type="image" name="btnadduser" id="btnAddUserid" src="../images/buttons/btn_add.gif" alt="Add New User" style="border-width:0px;" border="0">
要在VBA中单击此按钮,
Application.Wait (Now + TimeValue("00:00:03"))
While IE.readyState <> 4 Or IE.Busy: DoEvents: Wend
IE.document.getElementById("btnAddUserid").Click //this is the button which is not redirecting.
我无权访问代码的实际功能。所以我不知道后台发生了什么。但是除此以外的其他按钮都可以正常工作。我应该如何处理这个问题?
答案 0 :(得分:1)
您可以尝试
1)添加点击事件并将其触发
2)使用javascript模拟点击
3)使用FireEvent“ onclick”
Option Explicit
Public Sub PerformClick()
Dim ie As New InternetExplorer
With ie
.Visible = True
.Navigate2 "url"
While .Busy Or .readyState < 4: DoEvents: Wend
'#1
Dim event_onClick As Object
Set event_onClick = .document.createEvent("HTMLEvents")
event_onClick.initEvent "click", True, False
With .document.querySelector("#btnAddUserid")
'#3
.FireEvent "onclick"
'#1
.dispatchEvent event_onClick
End With
'Or #2
ie.Document.parentWindow.execScript "document.querySelector('#btnAddUserid').click();"
Stop
.Quit
End With
End Sub