WebBrowserにてリストボックスを選択する


VBっ子  2009-08-17 00:43:59  No: 146221

お世話になります。
vb.net2008 WebBrowserにてHTMLのコントロールを操作するアプリを開発してます。
そこで<select>タグの<option>内文字列を検索し、該当する文字があればチェックすると言うロジックで行き詰っております。 
かなりググッたのですが、出てきませんでした。

↓VBだったら、こんな感じでできるみたいです。

     For i = 0 To objIE.Document.all.Length - 1
        'インプットのタグか?.tagnameを見る
        Debug.Print i & ":" & objIE.Document.all(i).tagname
        If objIE.Document.all(i).tagname = "OPTION" Then
            'さらに、値が2とテキストが中日かチェックする
            If objIE.Document.all(i).Value = "2" _
             And objIE.Document.all(i).Text = "中日" Then
                'ここまで調べて、チェックを付ける
                objIE.Document.all(i).Selected = True
            End If
        End If
     Next i

よろしくお願いします。


魔界の仮面弁士  2009-08-17 02:04:15  No: 146222

> vb.net2008 
VB2008 ですね。

> ↓VBだったら、こんな感じでできるみたいです。
VB6 だったら、ですね。

> 該当する文字があればチェックすると言うロジックで行き詰っております。
たとえば、こんな感じで。

Public Class Form1
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        Button1.Enabled = False
        TextBox1.Text = "th"
        WebBrowser1.Navigate("http://www.ueda.info.waseda.ac.jp/~gaku/js/how025.html")
    End Sub

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        Button1.Enabled = True
    End Sub

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Dim searchText As String = TextBox1.Text
        MsgBox(searchText & "を含む項目を選択します")
        For Each tagSelect As HtmlElement In WebBrowser1.Document.GetElementsByTagName("SELECT")
            For Each tagOption As HtmlElement In tagSelect.GetElementsByTagName("OPTION")
                Debug.WriteLine(tagOption.OuterHtml)
                If tagOption.InnerText Like "*" & searchText & "*" Then
                    tagOption.SetAttribute("selected", "selected")
                Else
                    tagOption.SetAttribute("selected", Nothing)
                End If
                Debug.WriteLine(tagOption.OuterHtml)
            Next
        Next
    End Sub
End Class


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加