如何使用querySelector单击按钮<;a标题=“&引用&燃气轮机;在VBA中
我正在尝试使用querySelector()。单击以单击浏览器中的按钮 以下是HTML代码:如何使用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
<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