我正在尝试使用IE作为浏览器通过Microsoft 365发送电子邮件。我目前很难让VBA创建一个新的电子邮件,并试图通过简单地告诉它点击" New Mail"按钮,其中包含以下HTML代码:
<button autoid="_n_j" type="button" class="_n_j2 o365button" aria-labelledby="_ariaId_31" regionbehavior="1">
<span class="_n_l2 owaimg ms-Icon--plus ms-bcl-tp ms-bg-transparent ms-icon-font-circle ms-fcl-tp ms-icon-font-size-20-circle" role="presentation"></span>
<span class="_n_k2 ms-font-weight-regular ms-font-color-themePrimary" id="_ariaId_31">New mail</span>
</button>
我试图使用以下VBA代码按下它:
Dim objButton As Object
Set objButton = IE.Document.getElementById("_n_j2 o365button")
objButton.onfocus
objButton.onclick
但是我遇到了运行时错误。我认为这是因为按钮使用的是javascript(页面在按下时不会重新加载,只是更新)。任何想法如何做到这一点?
答案 0 :(得分:1)
尝试IE.Document.GetElementsByClassName("_n_j2 o365button")(0).Click
您无法使用.GetElementByID(),因为该按钮尚未分配ID。
我已经使用了.GetElementsByClassName(),因为我们知道该按钮已分配了一个类,但是一个类不是唯一的。此方法返回此类的所有元素的集合 - 没有看到整个HTML,我将假设页面上的所有按钮共享此类。
(0)
告诉代码单击存储在集合中的第一个项目。
(同样,我会假设你没有宣布Option Base 1
之类的东西)
您可能需要遍历集合并以某种方式测试每个项目以查看所需的按钮并相应地更改(0)
。