如何在没有id VB的情况下获得'href'的值

时间:2016-10-22 12:00:46

标签: .net vb.net winforms webbrowser-control

我知道这是一个愚蠢的问题,但我很难用这个。我希望得到没有id的'href'的值,但我不能。

这是HTML

<p class="CLASS">
    <a href="URL" target="TARGET">
        <img src="IMGURL" title="TITLE" border="BORDER">
    </a>
</p>

这是我正在使用的(不起作用):

For Each WPE As HtmlElement In WebBrowser1.Document.GetElementsByTagName("a")
    If WPE.GetAttribute("target").Equals("TARGET") Then
        HREFVALUE = WPE.Getattribute("href")
        Exit For
    End If
Next

那么如何获得'href'的价值?

1 个答案:

答案 0 :(得分:1)

您的代码正常运行。但是你没有得到预期的结果,因为你可能在不正确的地方执行代码。应在文档完成后运行代码。知道该文档的好地方是DocumentCompleted WebBrowser控制事件:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.WebBrowser1.Navigate("d:\file.html")
End Sub
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As _
    WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

    Dim tag = Me.WebBrowser1.Document.GetElementsByTagName("a").Cast(Of HtmlElement) _
                .Where(Function(a) a.GetAttribute("target") = "TARGET") _
                .FirstOrDefault()
    Dim href = tag.GetAttribute("href")
End Sub

我在上面的代码中使用linq只是为了学习目的。你自己的代码也可以。