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:我是这个论坛的新手,所以如果我做错了事,请让我知道,因为我已经看到了反对票,而我也不知道为什么。
[使用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的另一个主题,您可以引用它。
最后,我决定使用Selenium和Chrome浏览器单击该按钮,现在可以使用了!感谢您的帮助]