Имитация ссылки нажмите веб-браузер управления vb.net

Я пытаюсь заставить свое приложение щелкнуть ссылку, которая находится внутри страницы, загруженной в элемент управления веб-браузера, но, похоже, ничего не происходит. Щелчок вручную по ссылке работает (он выполняет некоторую команду javascript для загрузки данных с использованием ajax). Я не могу просто перейти по URL, так как HREF это "#"

До сих пор я попробовал эти методы:

wb.Document.GetElementById("MyElement").InvokeMember("click")wb.Document.GetElementById("MyElement").RaiseEvent("onmousedown")wb.Document.GetElementById("MyElement").RaiseEvent("onclick")

Не уверен, что это поможет, но:wb.Document.GetElementById("MyElement").RaiseEvent("onmouseover")Кажется, частично симулировать наведение мыши на ссылку

Любые другие варианты, которые я могу попробовать симулировать щелчком мыши?

Спасибо!

3 ответа

Я была такая же проблема. Ничто не будет работать; RaiseEvent, Document.GetElementById(oLink.Id).InvokeMember("click") и т. Д.

Наконец, я нашел ссылку, просматривая Document.Links HTMLElementCollection; затем сделал ссылку. Фокус и глупый SendKeys.Send("{ENTER}"). Это сработало! Увидеть ниже:

        Dim bFound As Boolean = False
        Dim oLink As HtmlElement = Nothing

        For Each oLink In wbExample.Document.Links
            If oLink.InnerText IsNot Nothing _
            AndAlso oLink.InnerText.ToString.Trim = "12345" Then
                bFound = True
                Exit For
            End If
        Next

        If bFound = False Then
            Throw New Exception("Big time lameness; can't find the link.")
        End If

        oLink.Focus()
        SendKeys.Send("{ENTER}")

У меня была такая же проблема... Это работает.

For Each Mylink As HtmlElement In WebBrowser1.Document.Links
    If Mylink.InnerText.Contains("SomeTextToSearchFor") Then
        WebBrowser1.Navigate(Mylink.GetAttribute("href"))
    End If
Next

Во-первых, это мой первый ответный пост на любую проблему на любом сайте. У меня была такая же проблема, и я пришел к следующему, основываясь на предыдущих постах, которые работали, по крайней мере, в моей ситуации и избегали использования sendkeys:

Dim oLink As HtmlElement = Nothing

For Each oLink In WebBrowser1.Document.Links
    If oLink.InnerText IsNot Nothing _
       AndAlso oLink.InnerText.ToString.Trim = "TextToSearchFor" Then
        oLink.InvokeMember("click")
        Exit For
    End If
Next

Если бы ссылка, к которой я пытался получить доступ, имела идентификатор, связанный с ним, я думаю, что решение было бы еще проще, не требуя цикла, но поскольку этого не произошло, то оно и есть. Надеюсь, это поможет кому-то еще.

Другие вопросы по тегам