tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル javascriptで生成されるリストをwebbrowserから操作できない
投稿日: 2015/06/30(Tue) 17:42
投稿者まゆぱん
現在Windows7、VB2008で下記のようなサイトを自動で操作するプログラムを作成しております。
WebBrowserのバージョンはIE11を使用しています。

http://nsoyi.pw/test/

自動操作の内容は以下の流れを考えています。

@ 上記テストサイトでラジオボタン2をクリックしてリストボックス3つ(大分類・中分類・小分類)を表示させる。
A 大分類を選択する→javascriptで自動的に中分類が表示される。
B 中分類を選択する→javascriptで自動的に小分類が表示される。
C 小分類を選択する。


@はできたのですが、Aで大分類を選択しても中分類が表示されません。
(ウェブブラウザー上で手動で大分類をクリックすると中分類が表示されるのですが、プログラムで選択すると表示されません・・・)


ちなみに下記ソース内の
 hecTags2(0).SetAttribute("value", "2078297513") '【選択箇所】
  を
 hecTags2(0).Children(1).SetAttribute("selected", "true")
  や
 hecTags2(0).Children(1).InvokeMember("click")
  に変えてもうまくいきませんでした。


説明が下手で申し訳ないのですが、
どなたかお知恵をお貸し頂けると幸いです。
宜しくお願い致します。


============ ソースです ===============

Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.WebBrowser1.Navigate("http://nsoyi.pw/test/") '←URLの先頭にhを追加して下さい。
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim hecTags As HtmlElementCollection
        Dim hecTags2 As HtmlElementCollection
        Dim strData As String

        '「ラジオボタン2」をクリック
        hecTags = Me.WebBrowser1.Document.GetElementsByTagName("div")
        For Each objTag As HtmlElement In hecTags
            strData = objTag.GetAttribute("classname")
            If String.Compare(strData, "main_category") = 0 Then
                hecTags2 = objTag.GetElementsByTagName("input")
                For Each objTag2 As HtmlElement In hecTags2
                    strData = objTag2.GetAttribute("value")
                    If String.IsNullOrEmpty(strData) Then
                        objTag2.InvokeMember("Click")
                        Exit For
                    End If
                Next
                Exit For
            End If

        Next objTag

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim hecTags As HtmlElementCollection
        Dim hecTags2 As HtmlElementCollection
        Dim strData As String

        '大分類を選択
        hecTags = Me.WebBrowser1.Document.GetElementsByTagName("div")
        For Each objTag As HtmlElement In hecTags
            strData = objTag.GetAttribute("classname")
            If String.Compare(strData, "main_category") = 0 Then
                hecTags2 = objTag.GetElementsByTagName("select")
                For Each objTag2 As HtmlElement In hecTags2
                    If hecTags2.Count >= 3 Then

                        hecTags2(0).SetAttribute("value", "2078297513") '【選択箇所】
                        hecTags2(0).RaiseEvent("onChange")

                    End If
                Next
                Exit For
            End If

        Next objTag

    End Sub

End Class

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。