访问VBA-单击按钮或调用网站上的javascript

访问VBA-单击按钮或调用网站上的javascript,javascript,vba,ms-access,Javascript,Vba,Ms Access,我被难住了。我有vba代码来填充网站表单字段,多年来,我成功地单击了页面底部的“继续”按钮。最近,该网站所做的更改破坏了最后一步——单击“继续”按钮 按钮的HTML代码现在显示为: <input type="submit" name="PaymentProcessor$ButtonContinue" value="Confirm" onclick="javascript:PaymentProcessor_ButtonCo

我被难住了。我有vba代码来填充网站表单字段,多年来,我成功地单击了页面底部的“继续”按钮。最近,该网站所做的更改破坏了最后一步——单击“继续”按钮

按钮的HTML代码现在显示为:

<input type="submit" name="PaymentProcessor$ButtonContinue" value="Confirm" onclick="javascript:PaymentProcessor_ButtonContinue.disabled=true;__doPostBack(&#39;PaymentProcessor$ButtonContinue&#39;,&#39;&#39;);WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;PaymentProcessor$ButtonContinue&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="PaymentProcessor_ButtonContinue" class="btn btn-default" style="font-weight:normal;font-style:normal;text-decoration:none;" /> 
现在,这已经不起作用了。我没有出错,什么也没发生。我可以看到ieobj在locals窗口中被填充,所以我认为我有正确的句柄,我只是无法操纵对象

我还尝试了以下方法:

ieObj.FireEvent ("onkeypress")
''no error, no effect
ieObj.FireEvent ("doPostBack")
''error
ieObj.submit
''error- does not support method
ieObj.Value = "continue"
''no error, no effect
ieObj.Value = "confirm"
''no error, no effect
我还尝试直接调用html的javascript部分,但我可能做错了:

iePage.parentWindow.execScript "document.getElementById('PaymentProcessor_ButtonContinue').submit();", "javascript"
''gives automation error
iePage.parentWindow.execScript "__doPostBack(&#39;PaymentProcessor$ButtonContinue&#39;,&#39;&#39;);WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;PaymentProcessor$ButtonContinue&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false));", "javascript"
''gives automation error
我努力使用queryselector和queryselectorall,但这两种方法都导致访问崩溃

在页面的其他地方,定义了以下javascript函数。我不知道这是否重要,但具体如下:

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

//

有什么想法我应该试试吗?

看看输入按钮是否是表单的一部分,然后调用表单的“提交”过程。
如果不了解更多有关被刮取的HTML的信息,我无法提供进一步的帮助。

私人网页/登录后?是的,它大约有5页深入到支付处理网站。我想你应该按如下方式查看回发信息:u doPostBack('PaymentProcessor$ButtonContinue','');WebForm_DoPostBackWithOptions(新的WebForm_PostBackOptions(“PaymentProcessor$ButtonContinContinue”、“true”、“true”、“false、false、false”)和后面部分的一些背景:您是否也尝试过iePage.parentWindow.execScript”文档。getElementById(“PaymentProcessor_ButtonContinContinue”)。单击();,“javascript”我尝试过iePage.parentWindow.execScript“document.getElementById('PaymentProcessor_ButtonContinue')。单击();“,”javascript“在你的建议中。没有错误,但没有效果。谢谢你的建议。我在你的其他评论中阅读了链接,但我不确定如何使用这些信息,
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['Form1'];
if (!theForm) {
    theForm = document.Form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>