Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA单击html div类中的项_Excel_Vba_Webautomation - Fatal编程技术网

Excel VBA单击html div类中的项

Excel VBA单击html div类中的项,excel,vba,webautomation,Excel,Vba,Webautomation,我是一个新手,第一次使用Excel VBA实现web自动化。 到目前为止,我已经取得了一些进展,但我一直在尝试点击网站上看起来像按钮的东西。 如果你能帮助我,请告诉我,我很感激。非常感谢。 特定元素位于以下html代码中的a标记内: <div class="sh-c-btn-group"> <input name="pf.ok" type="hidden" value=""> <input name="pf.cancel" type="hidden"

我是一个新手,第一次使用Excel VBA实现web自动化。 到目前为止,我已经取得了一些进展,但我一直在尝试点击网站上看起来像按钮的东西。 如果你能帮助我,请告诉我,我很感激。非常感谢。 特定元素位于以下html代码中的a标记内:

<div class="sh-c-btn-group">
    <input name="pf.ok" type="hidden" value="">
    <input name="pf.cancel" type="hidden" value="">
    <a title="Sign In" class="sh-c-btn sh-c-btn--primary" onclick="postOk();">Sign In</a>
</div>

登录

此代码循环直到加载页面: 做 多芬特
循环直到objIE.readystate=4

此代码循环直到加载页面: 做 多芬特
循环到objIE.readystate=4

Jenn&Jumpgroup,非常感谢您的帮助:)通过获取标题和类名,成功地完成了以下循环:

Dim HTMLas As MSHTML.IHTMLElementCollection
Dim HTMLa As MSHTML.IHTMLElement

Set HTMLas = HTMLDoc.getElementsByTagName("a")

For Each HTMLa In HTMLas
    If HTMLa.getAttribute("title") = "Sign In" And HTMLa.getAttribute("classname") = "sh-c-btn sh-c-btn--primary" Then
        HTMLa.Click
    Exit For
    End If
Next HTMLa

Jenn&Jumpgroup,非常感谢您的帮助:)通过获得标题和类名,通过以下循环实现了这一点:

Dim HTMLas As MSHTML.IHTMLElementCollection
Dim HTMLa As MSHTML.IHTMLElement

Set HTMLas = HTMLDoc.getElementsByTagName("a")

For Each HTMLa In HTMLas
    If HTMLa.getAttribute("title") = "Sign In" And HTMLa.getAttribute("classname") = "sh-c-btn sh-c-btn--primary" Then
        HTMLa.Click
    Exit For
    End If
Next HTMLa

您可以使用querySelector方法避免循环

HTMLDoc.querySelector("a[title='Sign In']").click

您可以使用querySelector方法避免循环

HTMLDoc.querySelector("a[title='Sign In']").click

您尝试过getElementsByName(“pf.ok”)(1)了吗?单击?我尝试过getElementsByName(“pf.ok”)(0)。单击但什么都没有发生——索引(1)抛出错误——还尝试过getElementsByClassName(“sh-c-btn sh-c-btn-primary”)。单击未成功只是绑定到onclick事件。尝试使用div.firevent“onclick”。这是一个很好的参考。您尝试过getElementsByName(“pf.ok”)(1)了吗?单击?我尝试过getElementsByName(“pf.ok”)(0)。单击但什么都没有发生——索引(1)抛出错误——还尝试过getElementsByClassName(“sh-c-btn sh-c-btn-primary”)。单击未成功只是绑定到onclick事件。尝试使用div.firevent“onclick”。这是一个很好的参考。我一直在循环,直到页面完全加载,并且能够在页面完全加载后填写多个表单。但不知何故,我无法点击这一项。我一直在循环,直到页面完全加载,并能够在页面完全加载后填写多个表单。但不知何故,这一项无法点击。