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