用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("ctl00$cphMain$btnAddTab", "", true, "", "", 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