能否请您告知我如何启动IE网站[VBA]上的“ PressHERE”按钮上单击[或替代方法]?我试图通过类名,标记名甚至ID来调用它,而这些ID在网站源代码中没有提到。
<tr>
<td class="center edl_checkbox" style="padding-left: 15px;">
<input type="hidden" name="_orgSearchResultList[1].isSelected">
<label class="edl_chb">
<input type="checkbox" id="1" name="orgSearchResultList[1].isSelected" value="true" />
<span></span>
</label>
</td>
<td class="center">
<a href="#" onclick="javascript:doSubmit('Edit-1');" title="PressHERE">
PressHERE
</a>
<input type="hidden" id="Org1" value="PressHERE"/>
</td>
<td class="center" title="PressHERE">
PressHERE
在网站上“检查元素”时突出显示的特定行是:
<td class="center"><a href="#" onclick="javascript:doSubmit('Edit-1');" title="PressHERE">PressHERE
答案 0 :(得分:4)
尝试一下,让我们知道反馈。
Dim IE As New InternetExplorer, Html As HTMLDocument
Set Html = IE.document 'consider adding this line in your script in order for `.querySelector()` to run successfully
Html.querySelector("a[title='PressHERE']").Click
答案 1 :(得分:2)
CSS选择器:
您可以使用a[onclick='javascript:doSubmit('Edit-1');']
中的CSS selector。
这表示获取带有a
标签的元素,这些元素具有属性onclick
,其值包含'javascript:doSubmit('Edit-1');'
CSS查询:
VBA:
通过文档的.querySelector
方法为单个元素应用CSS选择器。因此,您需要使用HTMLDocument
进行查询。通过IE实例的.document
,当使用IE浏览到页面并且页面已经加载时,或者通过从HTMLDocument
加载responseText
的{{1}}对象。 / p>
例如页面加载后:
HTTPrequest/WinHTTP
在这里ie.document.querySelector("a[onclick='javascript:doSubmit('Edit-1');']").Click
是您的Internet Explorer浏览器实例。
querySelectorAll:
我假设这将匹配单个元素,或者第一个是必需的元素。它看起来很具体。如果存在多个匹配的元素,则可以使用.querySelectorAll
方法返回ie
。然后,您将按位置(从0开始)索引到该nodeList
中,例如
nodeList
或可能
.document.querySelectorAll("a[onclick='javascript:doSubmit('Edit-1');']").item(1).Click
上面的1是一个示例索引,该索引将位于基于0的nodeList中的位置2。