0

Web ブラウザ コントロールにロードされたページ内のリンクをアプリケーションでクリックさせようとしていますが、何も起こっていないようです。リンクを手動でクリックすると機能します (javascript コマンドを実行して、ajax を使用してデータをロードします)。HREF が「#」であるため、単純に URL に移動することはできません。

これまでのところ、次の方法を試しました。

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

それが役立つかどうかはわかりませんが wb.Document.GetElementById("MyElement").RaiseEvent("onmouseover") 、リンク上のマウスオーバーを部分的にシミュレートしているようです

マウスクリックをシミュレートするために試すことができる他のオプションはありますか?

ありがとう!

4

3 に答える 3

2

同じ問題がありました。何も機能しません。RaiseEvent、Document.GetElementById(oLink.Id).InvokeMember("クリック")など

最後に、Document.Links HTMLElementCollection; をループしてリンクを見つけました。次に、link.Focus と愚かな 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}")
于 2014-04-03T02:06:25.503 に答える
0

まず第一に、これはどのサイトでも、提出された問題に対する私の最初の回答投稿です。私はこれと同じ問題を抱えており、以前の投稿に基づいて次のことを思いつきました。これは、少なくとも私の状況では機能し、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

私がアクセスしようとしていたリンクに ID が関連付けられていれば、解決策はループを必要とせずにさらに簡単になったと思いますが、そうではなかったので、それがそのままです。これが他の誰かに役立つことを願っています。

于 2016-06-29T13:53:43.927 に答える
0

私は同じ問題を抱えていました...これはうまくいきます。

For Each Mylink As HtmlElement In WebBrowser1.Document.Links
    If Mylink.InnerText.Contains("SomeTextToSearchFor") Then
        WebBrowser1.Navigate(Mylink.GetAttribute("href"))
    End If
Next
于 2015-10-28T17:39:53.893 に答える