无法使用VBA在IE 11上单击javascript按钮

问题描述 投票:-1回答:2

VBA代码概不负责,因为它即使在非编程方式下也无法在IE 11上运行。该按钮在Chrome或Firefox上可以正常使用,但是我无法在计算机上使用Selenium,这会引发错误。我要求网站的编码团队更准确地告诉我如何在此链接https://bananadesk.com/transactions/incoming上的此链接(Exportar todo)上创建此按钮这是图片:Screen capture of the website

<a class="button -tertiary" href="javascript:export_all_to_excel()">Exportar Todo</a>

如果检查html页面,则会看到类似这样的内容:

o=null,i=null,a=/Version\/(\S+)\s+Safari/;if(navigator.userAgent){var s=navigator.userAgent,c=s.match(a);c&&s.indexOf("Chrome")===-1&&s.indexOf("Chromium")===-1&&(o="Safari",i=c[1])}n.exports={agent:o,version:i,match:r}},{}],21:[function(t,n,e){function r(t,n){Var... 

可能是因为他们的网站仅受Chrome和Safari支持。

这里是VBA代码,即使我正确输入了If块,它也不会单击Exportar todo按钮:

For Each MyHTML_Element In HTMLDoc.getElementsByClassName("button -tertiary")
Debug.Print "button found"
MyHTML_Element.Click: Exit For
Next

谢谢大家的帮助,我在这里迫切希望!

PS:我是这个论坛的新手,所以如果我做错了事,请让我知道,因为我已经看到了反对票,而我也不知道为什么。

javascript html excel vba internet-explorer-11
2个回答
0
投票

[使用VBA脚本自动执行IE浏览器时,getElementsByClassName()方法将返回具有所有给定类名称的所有子元素的类似数组的对象。因此,我们应该根据数组索引找到特殊元素。

示例代码如下

Public Sub ClickTest()

    Dim ie As Object

    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate2 "<web site url>"

        While .Busy Or .readyState <> 4: DoEvents: Wend

        ie.document.getElementsByClassName("button -tertiary")(0).Click
    End With
End Sub

这样的网页资源:

  <a class="button -tertiary" href="javascript:alert('hello')">Exportar Todo</a>

以上示例对我而言效果很好(使用IE 11),请进行检查并确保我们可以使用VBA在IE浏览器中找到链接。

然后,将javascript警报功能更改为export_all_to_excel()函数,并检查export_all_to_excel()函数中的代码,确保它们都支持IE浏览器。

此外,这是关于Clicking on hyperlink with partial href on Internet Explorer using vba的另一个主题,您可以引用它。


0
投票

最后,我决定使用Selenium和Chrome浏览器单击该按钮,现在可以使用了!感谢您的帮助]

© www.soinside.com 2019 - 2024. All rights reserved.