IE自动化使用Excel VBA:anchor.click调用功能不工作javascript web对话框

IE自动化使用Excel VBA:anchor.click调用功能不工作javascript web对话框,javascript,excel,ie-automation,vba,Javascript,Excel,Ie Automation,Vba,我对IE自动化、Java脚本和框架比较陌生。我也不确定我是否有同样的问题。请继续读下去 先决条件:IE11、VBA for Excel(2010) 因此,我尝试访问网页对话框的详细信息,您可以在其中: 1.单击按钮(验证给定邮政编码的地址) 2.将打开一个包含框架的自定义Web对话框,要求您从该特定邮政编码适用的城市列表中进行选择。城市列表不是组合框,而是表中显示的锚元素。 3.因此,我使用元素单击特定的城市。单击,但什么也没有发生 用手动鼠标单击相同的锚元素会触发javascript事件onc

我对IE自动化、Java脚本和框架比较陌生。我也不确定我是否有同样的问题。请继续读下去

先决条件:IE11、VBA for Excel(2010)

因此,我尝试访问网页对话框的详细信息,您可以在其中: 1.单击按钮(验证给定邮政编码的地址) 2.将打开一个包含框架的自定义Web对话框,要求您从该特定邮政编码适用的城市列表中进行选择。城市列表不是组合框,而是表中显示的锚元素。 3.因此,我使用元素单击特定的城市。单击,但什么也没有发生

用手动鼠标单击相同的锚元素会触发javascript事件onclick,顺便说一句,它会调用另一个函数

HTML:

我的代码是:

Set frameEl = IE.Document.getElementById("frameID") 'this is accessing the frame of the webpage dialog popup
Set elem = frameEl.contentDocument
Set anchorElemCollection = elem.getElementsByTagName("a")

For Each anchorElem In anchorElemCollection
    If anchorElem.className Like "thisClass" Then
         If anchorElem.innertext Like aParticularValue Then
               anchorElem.Click
               Exit For
         End If
    End If
Next

主播。点击部分不工作。webdialog弹出窗口不会选择主持人,也不会关闭。救命啊!我做错了什么?

如果可以确定将传递到arg1和arg2的值,请尝试直接运行javascript例程

ie.document.parentWindow.execScript "javascript:thisFunction(some_value1, some_value2, frameEl)

您是否真的在正确的位置寻找正确的元素?
.Click
是否不起作用,或者是否从未找到正确的
主播,也未执行任何单击?使用F8单步执行代码,或在anchorElem上方添加debug.print。单击显示实际找到元素的
。我在调试器(F12)中使用了断点,是的,它执行了步骤并执行了单击。我只是不明白为什么它没有点击锚。我现在要试试这个。稍后再告诉你结果。谢谢嗨,吉普。我尝试过execScript,但我遇到了与以前相同的问题,什么都没有发生!是的,我确信传递了参数,因为我从锚标记的outerHtml派生了函数。此外,我不能在webdialog弹出窗口上运行代码的确切行上设置断点。这正常吗?无法有效地跟踪它,请一步一步。再次单击“嗨”。我已经读到,以编程方式单击包含href的链接是不可能的。如果有的话,有解决办法吗?我在点击执行脚本的链接时成功率有限。这就是为什么我更喜欢
.execScript
方法。是的,我也尝试过这样做(execScript),但仍然没有效果-调试器告诉我它单击了链接,但没有任何效果。可能link.click与button.click的行为方式不同。
Set frameEl = IE.Document.getElementById("frameID") 'this is accessing the frame of the webpage dialog popup
Set elem = frameEl.contentDocument
Set anchorElemCollection = elem.getElementsByTagName("a")

For Each anchorElem In anchorElemCollection
    If anchorElem.className Like "thisClass" Then
         If anchorElem.innertext Like aParticularValue Then
               anchorElem.Click
               Exit For
         End If
    End If
Next
ie.document.parentWindow.execScript "javascript:thisFunction(some_value1, some_value2, frameEl)