VB 2010 "List/Dropdowneinträge" Auswählen und über Button senden

03/24/2013 21:35 brennbolle#1
Hallo zusammen :)

Kurz vorweg: Bin Anfänger in Sachen VB. Beschäftige mich aber seit der kurzen schon mit Grundlagen.

Kurz erklärt, ich bastel mir in vb2010 einen webbrowser mit dem ich eine Website durch Buttons Steuere. zb login, + Funktionen die Sonst mehrere Klicks oä benötigen in einem buttonklick. (Irgendwann evtl automat, oä).

Sachen wie: gehe zu Website xyz, Trage einen wert ein, Drücke Button senden.

bekomme ich hin. (:o Wie gesagt ANFÄNGER ).

Nun möchte ich aus mehren list/dropdown menues einträge über einen Button per one klick senden.

Ich hänge mal auszüge aus dem Html Quelltext an, ich sehe das die auswahlen in start_1 , start_2 , start_3 gemacht werden , und dann per button gesendet werden;

HTML Code:
<div id="tabcontainer">



<form id="start_form" method="POST" action="/cat/cat_action/" style="display:inline;">

<div id="catactionmenu">         
    <div class="actionshell" id="start_1">
        <span style="color:#EEE;font-weight:bold; font-size:14px;">Gebiet:</span> <select name="area_id" onchange="change_map(this.value)" style="font-weight:bold; background-color: #222; border: 1px solid #191919; color:#AAA; margin:3px; padding:1px;" id="area_id">
        <option value="None" selected="selected" disabled="">Auswählen...</option>
        
            <option value="1,Oben,3">Nord</option>
        
            <option value="2,unten,2">West</option>
        
            <option value="3,links,1">Ost</option>
        
            <option value="4,rechts,3">Süd</option>
        ...


  

<div class="actionshell " id="start_2" style="display:none;">
         <span style="color:#EEE;font-weight:bold; font-size:14px;">Route:</span> <select name="route_length" onchange="change_path(this.value)" style="font-weight:bold; background-color: #222; border: 1px solid #191919; color:#AAA; margin:3px; padding:1px;">
         <option value="0" selected="selected" disabled="">Auswählen...</option>
         <option value="10">Route A (10 min)</option>
         <option value="30">Route B (30 min)</option>
         <option value="60">Route C (60 min)</option>
         <option value="90">Route D (90 min)</option>
         <option value="120">Route E (120 min)</option>
         <option value="180">Route F (180 min)</option>

         </select>
         <div id="path" class="path_neutral">
         </div>

         <div id="pathcost" class="path_info">Wähle deine Route!</div>
    </div>

   

.....


<div class="actionshell " id="start_3" style="display:none;">

        <span style="color:#EEE;font-weight:bold; font-size:14px;">Haustier auswählen:</span>

        <ul id="pet_choice">
            
            <li>
                
    <div id="s_pet49606" class="petshell_mini" onclick="choose_pet(49606, 142)">
        <div class="petname">gunter <span class="pet_original">(cat)</span></div>
        
           <input id="pet_id" name="pet_id" value="" type="hidden">
        <center>
            <input id="action_start_button" value="Start" style="border:0; margin:0;" class="startbutton" onclick="start_petaction()" type="button">
        </center>
    </div>
Das wars aber auch erstmal!! :( . Wenn ihr mich jetzt fragt, was ich bis jetzt in VB getestet hab, mehrere sachen die ich aus tut"s Foren usw gelesen hab, Ich versteh auch dann was der Code macht, aber nen Anfang (wie und wieso) zu finden is mein Prob.....

Ich häng mal was an was ich "schon versucht hab". Wäre echt nett wenn mir da jemand helfen könnte. Ich erwarte hier keinen fertigen Code, wäre nur nett wenn ihr mich da bisschen unterstützen könntet, damit ich es halt selbst verstehe.

so hier einer meiner VB Versuche (hab ich aus nem Tut genommen und versucht fü mich anzupassen) Ist nur das beispiel für eine Auswahl, aber selbst die klappt nicht:

HTML Code:
Private Sub Button14_Click_1(sender As Object, e As EventArgs) Handles Button14.Click
webbrowser1.Navigate("http://irgendwohin.de")
        While (wb.ReadyState <> WebBrowserReadyState.Complete OrElse 
        Dim doc As HtmlDocument = webbrowser1.Document

        Dim divElement As HtmlElement = doc.GetElementById("start_1")
       
        Dim optionElements As HtmlElementCollection = divElement.GetElementsByTagName("option")
       
        For Each optionElement As HtmlElement In optionElements
          
            Debug.Print("Option: {0}", optionElement.OuterHtml)
          
            If optionElement.InnerText.ToUpper.Contains("UNTEN") Then
            
                optionElement.SetAttribute("Selected", "selected")
End If
        Next
    End Sub
End Class
So Ungefähr war ein Ansatz !!!!!!:

So genug geschrieben, bin für jeden Tip Dankbar !!!!!

Thx im vorraus :handsdown:

Hallo :rolleyes:

So bin jetzt soweit, das ich zumindest schonmal die erste Listbox auswahl treffe, wie bekomme ich dann die folgende ausgewählt?
Mein code:
HTML Code:
WebBrowser1.Document.GetElementsByTagName("select").GetElementsByName("area_id").Item(0).GetElementsByTagName("option").Item(1).SetAttribute("selected", "true")
        WebBrowser1.Document.GetElementsByTagName("select").GetElementsByName("route_length").Item(0).GetElementsByTagName("option").Item(1).SetAttribute("selected", "true")
die erste ist direkt richtig gewählt, die zweite wird aber auch erst nach dem selektieren der ersten geladen, bzw sichtbar.

??????????????

LG
03/25/2013 10:48 Deathman10#2
Worum geht es dir genau bei dem Zweiten, meinst du wie du bei der 2.Listbox einen Eintrag auswählen kannst oder bei der ersten Listbox den 2. Eintrag...
Falls du den 2. Eintrag auswählen willst, musst du daran denken, dass der Pc bei 0 anfängt zu zählen. Und mir ist aufgefallen, dass er das "Auswählen..." auch als Eintrag zählt...

Um "Auswählen..." auszuwählen:
PHP Code:
 WebBrowser1.Document.GetElementById("area_id").GetElementsByTagName("option").Item(0).SetAttribute("selected""true"
Um "Nord" auszuwählen:
PHP Code:
 WebBrowser1.Document.GetElementById("area_id").GetElementsByTagName("option").Item(1).SetAttribute("selected""true"
Um "West" auszuwählen:
PHP Code:
 WebBrowser1.Document.GetElementById("area_id").GetElementsByTagName("option").Item(2).SetAttribute("selected""true"
Um "Ost" auszuwählen:
PHP Code:
 WebBrowser1.Document.GetElementById("area_id").GetElementsByTagName("option").Item(3).SetAttribute("selected""true"
Um "Süd" auszuwählen:
PHP Code:
 WebBrowser1.Document.GetElementById("area_id").GetElementsByTagName("option").Item(4).SetAttribute("selected""true"
Hoffe, dass war die Frage die du meintest, ansonsten schreib mit bitte eine PN, was du genau meinst...

Greetz Deathman10
03/25/2013 12:48 brennbolle#3
Vielen dank für die ausführliche ANtwort. Hast PN

LG ;)