VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 インターネット・通信関係のメニュー
1.WebBrowserコントロールワンポイントテクニック集
2.WebBrowserを使ってのHTMファイル内の全ての要素を調査
3.WebBrowserを使ってのTextBoxや各種ボタン等要素の操作例 
4.キーワードを URL エンコードして yahoo 及び google 検索
5.ちょっと便利なサイト内検索ソフト
6.
7.
8. 
9. 
10. 
11.
12.
 . 
20.その他、当サイト内に掲載のインターネット・通信に関するサンプル 


3.WebBrowserを使ってのTextBoxや各種ボタン等要素の操作例(08_Int_03) (旧、SampleNo.434)
1 .起動時の処理及びテスト用の WEB ページを表示
2 .ボタンの操作色々その1(1.ボタンのクリック操作(その1)を実行する)
3 .ボタンの操作色々その2(2.ボタンのクリック操作(その2)を実行する)
4 .テキストボックスへの読み書き(3.テキストボックスへの読み書きを実行する)
5 .オプションボタンの操作色々(4.オプションボタンの選択を実行する)
6 .チェックボックスの操作(5.チェックボックスの選択を実行する)
7 .リストボックスの操作(6.リストボックスの選択(その1)を実行する)
8 .リストボックスの操作(7.リストボックスの選択(その2)を実行する)
9 .送信ボタン(submit)の操作(8.送信ボタンのクリックを実行する)
10.通常のリンクの操作(9.通常のリンクのクリックを実行する)
11.画像のリンクの操作(10.画像のリンクのクリックを実行する)
12.スクリプト関数の実行
13.
14.
15.
16.
17.
18.

  上記実行図及び使用コントロール類と配置図

 下記プログラムコードに関する補足・注意事項 
動作確認:動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 / Internet Explorer 11.0
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
使用コン:Button1 〜 Button11 / WebBrowser1 /  
トロール:事前にテストサイドの要素名等を調査し、サイトを表示状態にしておいてから実行して下さい。
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.起動時の処理及びテスト用の WEB ページを表示

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'テストページを表示
    'テスト用の WEB ページ を表示(変更すると動作しません。)
    WebBrowser1.Navigate("http://hanatyan.sakura.ne.jp/testfile1.htm")
End Sub

このページのトップへ移動します。 2.ボタンの操作色々その1(1.ボタンのクリック操作(その1)を実行する)

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'1.ボタンのクリック操作(その1) のボタン【type="button"】を操作する

   '要素名とボタンの表面の文字とでどのボタンかを特定する場合
   Dim elem As HtmlElement
   For Each elem In WebBrowser1.Document.GetElementsByTagName("input")
      '要素=input の value 属性の値を調べる
      If elem.GetAttribute("value") = "水色" Then
         elem.InvokeMember("Click")    '
      End If
   Next
   MessageBox.Show("背景を赤色にします。")
   '要素名とボタン名で特定して操作する場合
   WebBrowser1.Document.GetElementsByTagName("input").Item("btnred").InvokeMember("Click")

   MessageBox.Show("背景をみどりにします。")
   '特に特定できるものがない場合
   WebBrowser1.Document.GetElementsByTagName("input").Item(2).InvokeMember("Click")

   MessageBox.Show("背景を白色にします。")
   'ID で特定して操作する場合(最初に見つかった1個だけを格納する)
   WebBrowser1.Document.GetElementById("btn_white").InvokeMember("Click")
End Sub

このページのトップへ移動します。 3.ボタンの操作色々その2(2.ボタンのクリック操作(その2)を実行する)

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'2.ボタンのクリック操作(その2)のボタン【type="submit" × type="button" ○】を操作する
    '注意 type="submit" となっているが本来の"submit" ボタンでは無い
    'name だけで特定する場合(同じ name が複数見つかれば見つかった分だけ格納する)
    '同じnameが1個なら Item(0) を複数なら出現順の no を指定
    WebBrowser1.Document.All.GetElementsByName("btn2").Item(0).InvokeMember("click")

    'このように書く事もできます btn3 をクリック(WEBページが変更されと変わってしまう)
    WebBrowser1.Document.Forms.Item(1).All.Item(6).InvokeMember("click")

    '本来は、前もってどのような物が存在するか調べておいてから操作するので
    '上記のような方法でもいいのですが、書き換えて変更され見つからない場合も
    'あるので実装時にはエラーチェックをつけて下さい。(下記は、btn1 なら OK)
    If WebBrowser1.Document.All.GetElementsByName("btn4").Count > 0 Then
        WebBrowser1.Document.All.GetElementsByName("btn4").Item(0).InvokeMember("click")
    End If
    'この場合これでは何も動作しない
    WebBrowser1.Document.All.GetElementsByName("btn2").Item(0).InvokeMember("submit")
End Sub

このページのトップへ移動します。 4.テキストボックスへの読み書き(3.テキストボックスへの読み書き)を実行する)

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
' 3.テキストボックスへの読み書き でのテキストボックス【type="text"】の値を取得と書き込み
    Dim txt As String
    txt = WebBrowser1.Document.GetElementsByTagName("input").Item("textbox2").GetAttribute("value")
    MessageBox.Show("テキストボックスの内容は、" & txt & "です。")
    WebBrowser1.Document.GetElementsByTagName("input").Item("textbox2").SetAttribute("value", "書き換えました")
End Sub

このページのトップへ移動します。 5.オプションボタンの操作色々(4.オプションボタンの選択を実行する)

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
'4.オプションボタンの選択 でのオプションボタン【type="radio"】の選択方法
    Dim elem As HtmlElement
    'Name rg1 で同じなので特定できないので
    For Each elem In WebBrowser1.Document.GetElementsByTagName("input")
        '操作したいチェックボックスを探す
        If elem.GetAttribute("value") = "op1" Then
            ' True と書きたいところだが "True" のように文字型でないとだめ
            '外す場合は、"False" かと思いきや "" を指定すればOK
            'それならばと "hoge" と書いても OK だ!
            elem.SetAttribute("Checked", "hoge")
            '又は、下記でもok(既に、チェック済みでもチェックボックスの場合は、チェックが外れないので)
            ' elem.InvokeMember("Click")
        End If
        '現在の状態を調べる場合
        If elem.GetAttribute("value") = "op1" Then
            MessageBox.Show("op1 は" & elem.GetAttribute("Checked") & " です。")
            'これでチェックが外れます。
            elem.SetAttribute("Checked", "")
        End If
    Next
End Sub

このページのトップへ移動します。 6.チェックボックスの操作(5.チェックボックスの選択を実行する)

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
'5.チェックボックスの選択 でのチェックボックスの【type="checkbox"】選択方法
    '既にチェック済みならチェックが外れるので事前に確認の事
    If WebBrowser1.Document.GetElementsByTagName("input").Item("ch1").GetAttribute("Checked") = "False" Then
        WebBrowser1.Document.GetElementsByTagName("input").Item("ch1").SetAttribute("Checked", "True")
    End If
    'Name が一意なので下記でもOK
    Dim elem As HtmlElement = WebBrowser1.Document.All.GetElementsByName("ch3").Item(0)
    If elem.GetAttribute("Checked") = "False" Then '大文字でも小文字でもOK
        elem.SetAttribute("Checked", "True")     'オプションボタンの時と同様でOK
        MessageBox.Show("")
        elem.SetAttribute("Checked", "")
    End If
End Sub

このページのトップへ移動します。 7.リストボックスの操作(6.リストボックスの選択(その1)を実行する)

Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
'6.リストボックスの選択(その1)でのリストボックスの操作例
    Dim elem As HtmlElement = Nothing
    For Each elem In WebBrowser1.Document.GetElementsByTagName("SELECT")
        'Name=op_1 のリストボックスを選択
        If elem.GetAttribute("NAME") = "op_1" Then
            'VB6.0用掲示板を選択
            elem.Children.Item(2).SetAttribute("Selected", "True hogeでもOK")
            'イベントの発生が必要な場合下記のように設定
            elem.RaiseEvent("onChange")
            '又は下記でもOK
            'elem.InvokeMember("onChange")
            Exit For
        End If
    Next

    '下記のように特定できるならこのように書くこともできる
    'WebBrowser1.Document.All.GetElementsByName("op_1").Item(0).SetAttribute("Selectedindex", "2")
    'WebBrowser1.Document.All.GetElementsByName("op_1").Item(0).InvokeMember("onChange")

End Sub

このページのトップへ移動します。 8.リストボックスの操作(7.リストボックスの選択(その2)を実行する)


Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
'7.リストボックスの選択(その2)でのリストボックスの操作例
    Dim elem As HtmlElement = Nothing
    For Each elem In WebBrowser1.Document.GetElementsByTagName("SELECT")
        'listbox1 のリストボックスを選択
        If elem.GetAttribute("NAME") = "listbox1" Then
            For i As Integer = 0 To elem.Children.Count - 1
                If elem.Children.Item(i).GetAttribute("Selected") = "True" Then
                    MessageBox.Show("ListBox で " & elem.Children.Item(i).InnerText & " = " & _
                    elem.Children.Item(i).GetAttribute("value") & " が選択されています")
                End If
            Next
        End If
    Next
End Sub


 図1.上記実行結果及び使用コントロール類と配置図
 internet03_01.gif

このページのトップへ移動します。 9.送信ボタン(submit)の操作(8.送信ボタンのクリックを実行する)

Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
'8.送信ボタンのクリック での送信ボタン【type="submit"】の操作例
    'こちらの submit ボタンは以下のようにしてクリックできる
    WebBrowser1.Document.Forms(7).InvokeMember("submit")
End Sub

このページのトップへ移動します。 10.通常のリンクの操作(9.通常のリンクのクリックを実行する)

Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
'9.通常のリンクのクリック でのリンクのクリック例
    Dim elem As HtmlElement = Nothing
    For Each elem In WebBrowser1.Document.GetElementsByTagName("A")
        '指定の A タグ内にある一意のものを指定する
        '最悪、href で URL を取得して照合する

        If elem.InnerText = "メニューへ移動" Then
            elem.InvokeMember("Click")   'クリックする
            Exit For
        End If
    Next
End Sub

このページのトップへ移動します。 11.画像のリンクの操作(10.画像のリンクのクリックを実行する)

Private Sub Button11_Click(sender As System.Object, e As System.EventArgs) Handles Button11.Click
'10.画像のリンクのクリック
    Dim elem As HtmlElement = Nothing
    For Each elem In WebBrowser1.Document.GetElementsByTagName("img")
        '指定の img 内にある一意のものを指定する
        '最悪、href で URL を取得して照合する
        If elem.GetAttribute("alt") = "玄関へお回り下さい" Then
            elem.InvokeMember("Click")   'あれば、そのイメージをクリック
            Exit For
        End If
    Next
End Sub


このページのトップへ移動します。 12.スクリプト関数の実行

Private Sub Button12_Click(sender As System.Object, e As System.EventArgs) Handles Button12.Click
'11.スクリプト関数の実行
    'HtmlDocument.InvokeScript メソッド の使用例
    Dim obj0 As Object = "只今 InvokeScript の" & vbCrLf
    Dim obj1 As Object = "テスト中です"
    Dim objArray As [Object]() = New [Object](1) {obj0, obj1}
    WebBrowser1.Document.InvokeScript("test", objArray)
End Sub

このページのトップへ移動します。 13.


このページのトップへ移動します。 14.


このページのトップへ移動します。 15.


このページのトップへ移動します。 16.


このページのトップへ移動します。 17. 


このページのトップへ移動します。 18.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。