我正在尝试点击网页上的锚元素。我正在使用此代码:
For each anchor in HTMLDoc.anchors
If anchor.onclick = "validateForm(frmSearchEntry)" Then
anchor.click
exit for
End if
Next anchor
这是html的片段:
<tr>
<td height="35" align="right" nowrap>
<input type="hidden" name="aisposm01formReset" value="">
<a href="#" onclick="return resetForm(frmSearchEntry)"><img src="/Settlement/static/images/pbs/funcreset.gif" border="0"></a>
<a href="#" onclick="validateForm(frmSearchEntry)"><img src="/Settlement/static/images/pbs/funcsearch.gif" border="0" alt=""></a></td>
</tr>
<tr>
<td valign="bottom" nowrap>
<table>
<tr><td name="txtErrorMessage" class="error"></td></tr>
</table>
</td>
</tr>
然而,由于某种原因,当我尝试执行代码时,它只是飞过下一个循环,好像页面上没有任何锚元素一样。我不太清楚我在这里做错了什么。
答案 0 :(得分:0)
已更新,以反映评论中所述问题的答案
您要查找的元素实际上并不是锚点。有关如何在html中实现锚点的说明,请参阅this link。锚点看起来像<a name="anchor"></a>
,您可以像<a href="#anchor">click here</a>
一样创建指向它的链接。
相反,我可以使用HTMLDoc.GetElementsByTagName("A")
获取所有链接,然后迭代这些链接。请务必根据.getAttribute
功能执行检查,如下所示。
.OnClick
函数返回指向每msdn的事件处理函数的指针。您可能想要的是.getAttribute(strAttributeName As String, Optional lFlags As Long)
(msdn)。
尝试(未测试):
For each linkelement in HTMLDoc.GetElementsByTagName("a") 'As noted above
If linkelement.getAttribute("OnClick") = "validateForm(frmSearchEntry)" Then
linkelement.click
exit for
End if
Next anchor
如果这不能立即起作用,请在If语句中放置一个断点,并在Watch Window中检查anchor.getAttribute("OnClick")
的值。