编程语言
首页 > 编程语言> > javascript – 使用VBA处理IE弹出窗口

javascript – 使用VBA处理IE弹出窗口

作者:互联网

我有一个Excel VBA宏,它通过Internet Explorer与Intranet站点交互,遍历客户列表,打开客户配置文件,更新字段并保存更改.

我遇到的问题是,当我将更改保存到客户配置文件时,Web应用程序中有一个弹出窗口,要求我确认其配置文件的更改,我无法弄清楚如何以编程方式单击“确定“在弹出窗口中.当我单击保存按钮时,javascript会执行函数调用以提交更改.

发送密钥不起作用,因为在确认弹出窗口之前代码不会执行下一行.我尝试了一些其他提到的解决方案,但无法使它们正常工作(javascript部分对我来说是新的).

任何有关如何以编程方式单击“确定”让我的代码安静运行的帮助将非常感激.

VBA代码:

    'pulling up edit user profile link
    s = objIE.document.getElementsByTagName("a")(4).href
    objIE.navigate s

    'wait here a few seconds while the browser is busy
    Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop

  'Adding value to customers profile and saving changes
    objIE.document.all.Item("Contact_Id").Value = Sheets("List").Range("c" & n).Value
    objIE.document.all.Item("submitBn").Click

    'wait here a few seconds while the browser is busy
    Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop

提交按钮调用的Java脚本函数:

function doNextPage() {
if (checkFormInputForEnglish(document.editProfileForm)) {
    if(validateForm()){
        if(confirm("Do\x20you\x20want\x20to\x20submit\x20the\x20changes\x3F")) {
            document.editProfileForm.submitBn.disabled = true;
            document.editProfileForm.submit();

解决方法:

使用VBA,

通过objIE.document.all.Item(“submitBn”)聚焦提交按钮.焦点

然后使用SendKeys“〜”单击按钮.

所以这里VBA不会参与.现在,通过检查HTML弹出代码是否为Visible / Exist来检测(HTML)弹出窗口

标签:javascript,excel,internet-explorer,excel-vba,vba
来源: https://codeday.me/bug/20190710/1424956.html