如何使用querySelector单击按钮<;a标题=“&引用&燃气轮机;在VBA中

如何使用querySelector单击按钮<;a标题=“&引用&燃气轮机;在VBA中,vba,Vba,我正在尝试使用querySelector()。单击以单击浏览器中的按钮 以下是HTML代码: <td tabindex="0" title="Company" class="Smell" role="grid" data-table-header="some header"> <div class="classroom"> <div class="first inner classroom"> <div c

我正在尝试使用querySelector()。单击以单击浏览器中的按钮

以下是HTML代码:

<td tabindex="0" title="Company" class="Smell" role="grid" data-table-header="some header">
    <div class="classroom">
        <div class="first inner classroom">
            <div class="second inner classroom">
                <div class="third inner classroom">

                    <a title="QUERYSELECTOR HERE" class="btn-link" href="/Tosomewhere/here/andthere/111">I'm not trying to grab an inner value because other tables have same inner value</a>

                </div>
                <div class="different sub-classroom">
                    <span class="some span">Mrs. Crobapole</span>
                </div>
            </div>
        </div>
    </div>
</td>
这是我收到的错误消息:

Run-time error '424': Object required
调试将突出显示这部分代码

ie.Document.querySelector("[title='QUERYSELECTOR HERE']").Click

是的,我确实指定了一个对象名,它前面的代码工作得非常好。但是,如果我单击“调试”按钮并再次运行代码,它的工作方式会很奇怪。

尝试通过标记索引捕获对象,在标记的事例索引上,您可以在html元素之间循环,以根据事例的属性获取所需的元素。title=“QUERYSELECTOR HERE” ; 此代码在
(“td”)(0)
内的
标记之间循环,并搜索title属性

Dim MyHtmlTable As Object

MyHtmlTable = ie.document.getElementsByTagName("td")(0)
For i = 0 To MyHtmlTable.All.tags("a").Length - 1
If MyHtmlTable.getElementsByTagName("a")(i).getAttribute("Title") = "QUERYSELECTOR HERE" Then
    MyHtmlTable.getElementsByTagName("a")(i).Click
    Do
    DoEvents
    Loop Until ie.readyState = 4
Exit For
End If
Next i

希望这有帮助。

看起来不错,您可能没有等待足够长的时间来加载页面。尝试将
和ie.busy=false添加到
中,直到我添加了
和ie.busy=false
。但是我仍然得到了424错误。顺便说一下,调试突出显示了
ie.Document.querySelector(“[title='querySelector HERE']”)。现在我看到它,单击
,我还认为它与页面加载有关,因为错误消息显示在“加载”javascript图标消失之前。查看定时循环或点
Dim MyHtmlTable As Object

MyHtmlTable = ie.document.getElementsByTagName("td")(0)
For i = 0 To MyHtmlTable.All.tags("a").Length - 1
If MyHtmlTable.getElementsByTagName("a")(i).getAttribute("Title") = "QUERYSELECTOR HERE" Then
    MyHtmlTable.getElementsByTagName("a")(i).Click
    Do
    DoEvents
    Loop Until ie.readyState = 4
Exit For
End If
Next i