0

现在在发布这个问题之前,我确实阅读了......

如何通过 GetElementByClass 选择一个类并以编程方式单击它

但这对我不起作用。显然我是个白痴,不知道如何使用该代码,或者它只是不适合我。如果有帮助的话,我也在 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 上调用“点击”。我知道它什么时候因为服务器上的一些 PHP 代码而被点击,但这需要很长时间才能解释它是如何工作的。

任何人都知道我怎么能把它挑出来,所以当我有一个变量 XITEM 或 .NET 内部的东西时,我可以调用它吗?就像我有...

For XITEM as HTMLELEMENT in WebBrowser1.Document.GetElementsByTagName("div")
......
item.invokeMember("click")
.....

然后它只单击“选择”的 HTMLELEMENT。希望这对每个人都有意义

4

1 回答 1

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
于 2013-04-10T19:03:47.690 回答