お世話になります。
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
よろしくお願いします。
> 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