Webbrowser Radiobutton ....

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Webbrowser Radiobutton ....

    Hallo liebes Forum,

    ich versuche zwanghaft einen Radio-Button in meinem Webbrowser anzuklicken.

    Alles was ich habe ist:

    PHP-Quellcode

    1. <label id="id12" for="title">Anrede</label>
    2. <div class="input" id="title"><input name="personaldataPanel:salutation" value="Frau" id="title-Frau" type="radio"><label for="title-Frau">Frau</label><input name="personaldataPanel:salutation" value="Herr" id="title-Herr" type="radio"><label for="title-Herr">Herr</label></div>
    3. <img id="id13" style="display: none;">
    4. </div>


    Ich habe den Code von [VB 2008] Form Submit mit dem WebBrowser Control probiert, aber er will den Button einfach nicht anklicken.

    Die Textfelder kann ich ausfüllen, das geht alles Perfekt, nur dieser Radiobutton..

    Rufe ich etwas falsch auf?

    VB.NET-Quellcode

    1. Dim myForm As New WebBrowserForm(WebBrowser1)
    2. myForm.Radiobox("personaldataPanel:salutation", "1", True)


    Eigentlich wollte ich das ganze ja auch via HttpWebRequest machen, aber da kann ich in dem Post das Captcha der Seite nicht mit schicken...

    DANKE!
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    Kann ja auch nicht gehen. Was soll die "1" ???

    VB.NET-Quellcode

    1. myForm.Radiobox("personaldataPanel:salutation", "Herr", True)


    Du musst den Namen des Input-Elementes angeben und da ja Radioboxen die gleichen Namen haben wird zu identifizierung auch noch der Value benötigt und der ist in deinem Fall eben "Herr" oder "Frau", also musste dies auch angeben, welche Radiobox mit welchem Namen und welchem Value aktiviert werden soll.
    Nun ich nehme an das wird ein Array von Images sein, einfach durchgehen und das richtige raussuchen??

    Ich würds allerdings nicht damit machen sondern die HTML-Elemente druchgehen bzw. die IMG-Tags und dort nach dem src-Attribut suchen welches die gewünschte Bild URL beinhaltet.

    Dodo schrieb:

    Nun ich nehme an das wird ein Array von Images sein, einfach durchgehen und das richtige raussuchen??

    Ich würds allerdings nicht damit machen sondern die HTML-Elemente druchgehen bzw. die IMG-Tags und dort nach dem src-Attribut suchen welches die gewünschte Bild URL beinhaltet.


    Das Problem an der sache ist, das die URL die ich haben will (Ein Captcha) mit Json geschrieben ist.

    PHP-Quellcode

    1. <div class="captcha">
    2. <img id="id47" src=";jsessionid=33FC3A3C17371FB824572645491FE9FD.reg-webde001?wicket:interface=:0:freemailForm:captchaPanel:captchaContainer:captchaImage::IResourceListener::&amp;wicket:antiCache=1312201216610" alt="Sollten Sie das Bild nicht lesen können, hilft Ihnen der WEB.DE Support gerne bei der Registrierung: 09001-93 23 30 (Montag bis Freitag von 8-21 Uhr, Samstag und Sonntag von 10-18 Uhr, 1,86 Euro/Min. aus dem Festnetz)" border="0" height="50" width="220">
    3. <div id="get_new_captcha" alt="anderes Wort anzeigen" title="anderes Wort anzeigen" onclick="var wcall=wicketAjaxGet(';jsessionid=33FC3A3C17371FB824572645491FE9FD.reg-webde001?wicket:interface=:0:freemailForm:captchaPanel:captchaContainer:blankForCaptcha::IBehaviorListener:0:',function() { }.bind(this),function() { }.bind(this), function() {return Wicket.$('get_new_captcha') != null;}.bind(this));return !wcall;"></div>
    4. <span>anderes Wort anzeigen</span>
    5. <img id="id48" style="display: none;">
    6. </div>


    Deswegen wollte ich es direkt via Webbroser Control ansprechen, was ich wie folgt Probiert habe:

    VB.NET-Quellcode

    1. Private Function GetImageUrls() As String()
    2. If (WebBrowser1.Document IsNot Nothing) Then
    3. Dim Urls(WebBrowser1.Document.Images.Count) As String
    4. For Each ImgElement As HtmlElement In WebBrowser1.Document.Images
    5. Urls(Urls.Length) = ImgElement.GetAttribute("SRC")
    6. Next
    7. GetImageUrls = Urls
    8. Else
    9. Dim Urls(0) As String
    10. GetImageUrls = Urls
    11. End If
    12. End Function


    Da bekomme ich aber immer den Fehler "Index auserhalb des Arrays" :x
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    Naja brauchst du nicht, das Image hat doch eine ID, was in den seltestens Fällen so ist, deswegen zuerst mein Vorschlag mit alle Bild Tags durchsuchen.
    Nun kannst du doch das Image direkt ansprechen, allerdings habe ich keine Ahnung wie der Browser den angegebenen String als Bildquelle interpretiert.

    PS: Dein Code ist auch mist, weil du zum einen immer das Letzte Array Element setzten würdest dann ist der Index des letzten Elementes die Array Länge - 1
    Schuldigung, habe den Code hier her:
    msdn.microsoft.com/en-us/libra…es%28v=vs.80%29.aspx#Y342

    Ich hätte auch nichts gegen wenn das Bild im webbrowser geladen wird!

    Das habe ich in vb6 immer so gemacht:

    VB.NET-Quellcode

    1. wbr1.Navigate (wbr.Document.images(19).src)


    Aber in vb.net ist alles anders :x
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    Ja nicht immer blind kopieren ^^ das sind Beispiele, da sollte man trotzdem nicht das Gehirn ausschalten.

    Wie gesagt, gehe über die ID des Bild-Tags dran, da bekommste auch ein HtmlElement als Rückgabeobjekt und kannst versuchen das Bild irgendwie darzustellen, wobei ich nicht wüsste wie das gehn sollte, wegen dem komischen JSON String.
    Es gibt einen JSON Parser, wenn ich wüste wie DER Funktioniert, dann bräuchte ich einfach nur den JSON String aus den Quelltext Splitten und zu der URL navigieren :x...

    Kannst du dir das bsp bei dem Parser mal anschauen? ^^
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    Nun der Parser bringt dir leider nicht das gewünscht Ergebnis, so ein Parser habe ich mir auch selbst schonmal geschrieben. Der zerlegt lediglich den JSON String wieder in einzelne Elemente, also das z.B. aus dem String

    {bla,blubb,foo,bar}

    wieder ein Array wird.

    Ich nehme mal an in dem Dokument wird via JS die Bildsource ausgelesen, darin stehen alle nötigen Daten und via DOM wird dann eine echte Source angegeben.

    Edit: Also das Captcha Image wird wie folgt aufgerufen

    Quellcode

    1. https://registrierung.web.de/?wicket:interface=:1:freemailForm:captchaPanel:captchaContainer:captchaImage::IResourceListener::&wicket:antiCache=1312207364964


    Jetzt musst du schauen wie aus dem im src-Attribut angegebenen String zu dieser URL kommst.