用VBA“点击”一个JavaScriptbutton

无尽的谷歌search和许多解决scheme似乎没有帮助。 我不断收到不同种类的错误,只是找不到一个优雅的方法来点击这个button,除非我得到代码等待四秒钟,而我用鼠标手动点击它。

它在其他button上工作,但我工作,如果这里的问题是嵌套的doPostBack和许多''(取代从“”)在它?

下面的代码(我已经删除了不相关的部分)

VBA代码:

Sub IE_Clicks() Dim shellWins As ShellWindows Dim IE As InternetExplorer Set shellWins = New ShellWindows If shellWins.Count > 0 Then ' Get IE Set IE = shellWins.Item(0) IE.Visible = True Else ' Create IE Set IE = New InternetExplorer IE.Visible = True End If IE.Navigate ("[URL]") Do While (IE.Busy Or IE.READYSTATE <> READYSTATE.READYSTATE_COMPLETE) DoEvents Loop Call IE.document.parentWindow.execScript("WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl00$cphMain$btnAddTab', '', true, '', '', false, false))", "JavaScript") Set IE = Nothing End Sub 

HTML代码:

 <input type="submit" name="ctl00$cphMain$btnAddTab" value="Add New" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$cphMain$btnAddTab&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_cphMain_btnAddTab" class="ActionButton"> 

JavaScript的:

 <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['aspnetForm']; if (!theForm) { theForm = document.aspnetForm; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> 

有些东西,使我能够点击这个button将是惊人的。

这应该工作:

 IE.document.getElementById("ctl00_cphMain_btnAddTab").Click