2

テキストボックス、ボタン、タブコントロールを備えたフォームがあります。

ボタンに私はこのコードを持っています:

[Dim browser As New WebBrowser()
TabPage1.Controls.Add(browser)
browser.Dock = DockStyle.Fill
browser.Navigate(New Uri("http://www.google.com"))]

上記のコードは機能しますが、テキストボックスから検索できる必要があります。ボタンをクリックすると、Googleに移動し、テキストボックスで検索した単語を自動的に入力して、[Googleで検索]ボタンをクリックします。これを試しましたが、機能しません。ありがとう

Dim textElement. As HtmlElement = browser.Document.All.GetElementsByName("q")(0)
textElement.SetAttribute("value", textbox.text")
Dim btnElement As HtmlElement = browser.Document.All.GetElementsByName("btnG")(0)
btnElement.InvokeMember("click")
4

3 に答える 3

0

ボタンをクリックする前に、textElement にフォーカスを設定する必要があります。

textElement.Focus()

そうしないと、ページは明らかに検索を実行しません。

これは、コンソール ウィンドウで上記と同じ基本的な手順を試すことで確認できます。フィールドが(私のテストから)フォーカスされるまで、それらは機能しません。

(クリック関数が以下の完全なコードで直接公開されるように、mshtml タイプ ライブラリも使用しました)

Imports mshtml

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        web.Navigate("http://www.google.com")
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim textElement As HtmlElement = web.Document.All.GetElementsByName("q")(0)
        textElement.SetAttribute("value", TextBox1.Text)
        textElement.Focus()
        Dim btnElement As HTMLButtonElement =
            CType(web.Document.All.GetElementsByName("btnG")(0).DomElement, 
                HTMLButtonElement)
        btnElement.click()
    End Sub
End Class
于 2013-01-20T21:33:00.067 に答える
0

ボタンクリックハンドラでこれを使用できると思います...

browser.navigate("https://www.google.co.in/search?q="+textbox.Text)

これにより、テキスト ボックス内のテキストが Google で検索されます。「自動で検索ボタンをクリック」せずに検索でき、htmlのテキスト要素に値を設定する必要がありません。これは私にとってはうまくいきます。お役に立てれば。

于 2014-08-09T05:15:11.737 に答える