在发布此问题之前,我确实已阅读...
How to select a class by GetElementByClass and click on it programmically
但这对我不起作用。显然我是个白痴,不知道如何使用该代码,或者它只是不适合我。我也在VB.NET中使用WebBrowser控件,如果这有用的话......
我有以下我想点击...
<div class="closewindow"></div>
现在当然这被埋没在吨和其他div之下,但它没有任何直接的“所有者”。没有或类似的东西。它只是独自坐着
以下是
中的html<div class="main_class">
<div id="FullItemView">
<div style="width: 90%; float: left;">
<div class="headline">
<table style="width: 100%;">
<tbody><tr>
<td style="width: 15%; text-align: right; vertical-align: middle;">
<img class="switchImage" src="pictures/pic.png"></td>
<td style="width: 70%; vertical-align: middle;">
<span class="ListItemTitle">Renegade</span></td>
<td style="width: 15%; text-align: left;">
<img class="switchImage" src="pictures/pic.png"></td> </tr> </tbody></table>
</div>
</div>
<div class="closeWindow"></div>
......
现在我只想单独输出,然后在这个div和这个div上调用“click”。我知道当它被点击时,因为服务器上有一些PHP代码,但这需要很长时间来解释它是如何工作的。
任何人都知道如何解决这个问题,所以当我有一个变量XITEM或.NET内部的东西时,我可以调用它吗?就像我有......
For XITEM as HTMLELEMENT in WebBrowser1.Document.GetElementsByTagName("div")
......
item.invokeMember("click")
.....
然后它只点击“已选择”的HTMLELEMENT。希望这对每个人都有意义
答案 0 :(得分:2)
我在stackoverflow.com上找到的原始帖子后,我想出来了
Dim theElementCollection As HtmlElementCollection = Nothing
theElementCollection = WebBrowser1.Document.GetElementsByTagName("div")
For Each curElement As HtmlElement In theElementCollection
'If curElement.GetAttribute("classname").ToString = "example" It doesn't work.
' This should be the work around.
If InStr(curElement.GetAttribute("classname").ToString, "closeWindow") Then
' Doesn't even fire.
' InvokeMember(test) after class is found.
'MessageBox.Show(curElement.GetAttribute("InnerText"))
curElement.InvokeMember("Click")
curElement.InvokeMember("MouseDown")
curElement.InvokeMember("MouseUp")
curElement.RaiseEvent("OnClick")
curElement.Focus()
End If
Next