Webbrowser Formular ausfüllen (Select Option)

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von Deemah.

    Webbrowser Formular ausfüllen (Select Option)

    Hi,

    hier mal ein Ausschnitt aus meinem HTML Source:

    Quellcode

    1. <select class="DefaultInput" name="ParentID" id="ParentSeries">
    2. <option value="">- Bitte wählen -</option>
    3. <optgroup label="#">
    4. <option value="85930">Item1</option>
    5. <option value="89565">Item2</option>
    6. <option value="33372">Item3</option>
    7. </optgroup>
    8. </select>
    9. <select class="DefaultInput Player" name="Stream_0_Player">
    10. <option value="14" style="background: white url('res/gr/Player/DivX.png') no-repeat 4px 0px; text-indent: 24px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous">d</option>
    11. <option value="23" style="background: white url('res/gr/Player/DivX.png') no-repeat 4px 0px; text-indent: 24px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous">d1</option>
    12. <option value="36" style="background: white url('res/gr/Player/DivX.png') no-repeat 4px 0px; text-indent: 24px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous">d2</option>
    13. <option value="39" style="background: white url('res/gr/Player/DivX.png') no-repeat 4px 0px; text-indent: 24px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous">d3</option>
    14. </select>


    Soviel zum HTML Ausschnitt.
    Jetzt will ich per Webbrowser die Inhalte der Boxen auswählen können.

    Soweit so gut, klappt das bei der ersten:

    VB.NET-Quellcode

    1. WebBrowser1.Document.All("ParentID").Document.GetElementsByTagName("option")(list_serie.SelectedIndex + 1).SetAttribute("selected", "selected")


    Will ich das bei der zweiten Box auch machen, ändert er aber den Inhalt der ersten Box.

    VB.NET-Quellcode

    1. WebBrowser1.Document.All("Stream_0_Player").Document.GetElementsByTagName("option")(list_hoster.SelectedIndex + 1).SetAttribute("selected", "selected")


    Ich hoffe ihr könnt mir helfen bei der Sache :)
    Dieses All("ParentID").Document macht mich stutzig, ein Select-Feld hat doch kein eigenes HTML-Dokument!?
    Keine Ahnung ob es in .net noch geht, aber in VB6 konnte man direkt mit den Namen arbeiten anstatt diese sich über GetElements zusammenzusuchen:
    Beispiel: WebBrowser1.Document.Forms(0).elements(0).Options(2).Selected = True
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Der Fehler liegt da, dass All() ebenso wie getElementById eine ID und nicht einen Namen benötigt.
    Beim ersten geht es immer, weil du nach dem Aufruf mit All(), der nicht geht, nochmal das Document als genazes aufrufst und dann denn n-ten option Tag auswählst. Daher ist das immer der gleiche.
    So geht es auf jeden Fall:

    VB.NET-Quellcode

    1. WebBrowser1.Document.GetElementById("ParentSeries").GetElementsByTagName("option")(list_serie.SelectedIndex + 1).SetAttribute("selected", "selected")
    2. WebBrowser1.Document.GetElementById("Stream_0_Player").GetElementsByTagName("option")(list_hoster.SelectedIndex + 1).SetAttribute("selected", "selected")

    Quellcode

    1. <select class="DefaultInput" name="ParentID" id="ParentSeries">
    2. <option value="">- Bitte wählen -</option>
    3. <optgroup label="#">
    4. <option value="85930">Item1</option>
    5. <option value="89565">Item2</option>
    6. <option value="33372">Item3</option>
    7. </optgroup>
    8. </select>
    9. <select class="DefaultInput Player" name="Stream_0_Player" id="Stream_0_Player">
    10. <option value="14" style="background: white url('res/gr/Player/DivX.png') no-repeat 4px 0px; text-indent: 24px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous">d</option>
    11. <option value="23" style="background: white url('res/gr/Player/DivX.png') no-repeat 4px 0px; text-indent: 24px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous">d1</option>
    12. <option value="36" style="background: white url('res/gr/Player/DivX.png') no-repeat 4px 0px; text-indent: 24px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous">d2</option>
    13. <option value="39" style="background: white url('res/gr/Player/DivX.png') no-repeat 4px 0px; text-indent: 24px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous">d3</option>
    14. </select>
    schnelle zwischenfrage... kann man PHP-formulare nur mit dem Webbrowserelement ausfüllen oder geht das auch anders ?

    grund ist das ich die geschichte mit dem Webbrowser einfach unelegant finde :S

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „D3ph7“ ()

    habe bei der Combobox ein Probmel, das richtige wird zwar ausgewählt aber irgentwie nicht selektiert, also wenn ich dann auf "LogIn" klicke geht es nicht, den obwohl der richtige "Server" ausgewählt ist es sich an der standartselektierung versucht einzuloggen.

    Ultimator schrieb:

    VB.NET-Quellcode

    1. WebBrowser1.Document.GetElementById("ParentSeries").GetElementsByTagName("option")(list_serie.SelectedIndex + 1).SetAttribute("selected", "selected")
    2. WebBrowser1.Document.GetElementById("Stream_0_Player").GetElementsByTagName("option")(list_hoster.SelectedIndex + 1).SetAttribute("selected", "selected")

    Also wenn ich das benutze, dann bekomme ich den Fehler:
    Der Name "list_serie" wurde nicht deklariert.
    ?(
    Hoffe, jemand kann einen besseren Vorschlag machen, oder das Obenstehende korrigieren.
    :D
    LG
    Merio
    LG
    Merio

    WebBrowser1.Document.All("ParentID").Document.GetElementsByTagName("option")(list_serie.SelectedIndex + 1).SetAttribute("selected", "selected")

    also ich sehe in dem Code Eindeutig list_serie, was mir auch stark nach einer ListBox aussieht->somit auch ein Control...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---