微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决访问VBA-单击按钮或在网站上调用javascript

我很困惑。我有填写网站表单字段的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,false,false))" id="PaymentProcessor_ButtonContinue" class="btn btn-default" style="font-weight:normal;font-style:normal;text-decoration:none;" /> 

过去,我已将ieObj定义为HTMLInputElement并单击如下所示的按钮:

Set ieObj = iePage.getElementById("PaymentProcessor_ButtonContinue")
ieObj.Click

现在,它不再起作用。我没有收到错误,没有任何反应。我可以在本地窗口中看到ieobj的填充,所以我认为我拥有正确的句柄,只是无法操作该对象。

我也尝试了以下方法

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;,false));","javascript"
''gives automation error

我努力利用queryselector和queryselectorall,但是两种方法都使Access崩溃。

页面上的其他地方,定义了以下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的更多信息的情况下,我无法提供进一步的帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。