[Visual Basic] HTML "Anmelden" button in Formular drücken

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von liftishifty, 4. Mai 2012 .

  1. 4. Mai 2012
    Zuletzt von einem Moderator bearbeitet: 5. Mai 2012
    HTML "Anmelden" button in Formular drücken

    Huhu,

    also Folgendes:

    Wenn ich mir von egal Welcher Seite im Internet den Quelltext anschaue dann sehe ich ja Welche objekte welche Namen haben.. z.B eine textbox hat im Quelltext stehen:
    Code:
    <input type="text" name="portletInstance_43{actionForm.username}" id="username" class="textBox" maxlength="60" size="20" style="width:12em;">

    Nun kann ich ja mittels VBA aus zB Excel herraus eine Bestimmte Internetseite öffnen und dort Automatisch daten eintragen lassen mit:
    Code:
    IeApp.Document.getelementbyid("portletInstance_43{actionForm.username}").Value = "Benutzername"

    Allerdings gibt es in meinem konkreten Fall auf dieser Seite auch einen Button wie "Anmelden" den ich gerne Drücken würde. Normalerweise könnte man einfach den Namen des Elements angeben und ein ".click" an den Befehl wie oben Anfügen.

    Leider hat dieser Button auf der Seite die ich ausfüllen möchte aber keinen Namen. Ich weiss also nicht wie ich den Button nun gedrückt bekomme.

    Es geht um folgende Seite :

    https://www.dhl-geschaeftskundenportal.de/

    Vielleicht kann sich von euch mal jemand den Quelltext angucken oder mir vielleicht sagen wie ich diesen Button nun mittels VBA gedrückt bekomme?!

    Wär aufjedenfall echt Super, verzweifle gerade daran

    Dazu poste ich noch meinen Bisherigen Code:

    Code:
    Sub Uebergabe_an_DHL()
     Dim ieApp As Object
     Set ieApp = CreateObject("InternetExplorer.Application")
     Dim ieForm As Object
     Dim ieObj As Object
     
     
     ieApp.Visible = True
    ieApp.Navigate "https://www.dhl-geschaeftskundenportal.de/"
     Do: Loop Until ieApp.Busy = False
     Do: Loop Until ieApp.Busy = False
     With ieApp.Document
     Do: Loop Until .ReadyState = "complete"
     .getelementbyid("portletInstance_43{actionForm.username}").Value = "benutzername" 
     .getelementbyid("portletInstance_43{actionForm.password}").Value = "Passwort" 
     [COLOR="Red"]
     Hier Soll das ganze jetzt Abgeschickt werden bzw es soll auf den Button "Anmelden" gedrückt werden. [/COLOR]
    
     End with
    
    
     
     Set ieApp = Nothing
    End Sub
    
    Hoffe hier gibt es ein paar Experten. Aus den Antworen von google werde ich irgendwie nicht schlau. Hab schon gelesen das man irgendwie alle Elemente durchlaufen soll aber verstanden hab ichs trotzdem nicht.

    Also wie gesagt wäre echt super wenn jemand von euch da was weiss
     
  2. 4. Mai 2012
    AW: HTML "Anmelden" button in Formular drücken

    Schau dir das mal an
    http://www.vb-paradise.de/allgemeines/tipps-tricks-und-tutorials/internet-lan/25722-httpwebrequest-tutorial-fuer-anfaenger/
     
    1 Person gefällt das.
  3. 4. Mai 2012
    Zuletzt von einem Moderator bearbeitet: 5. Mai 2012
    AW: HTML "Anmelden" button in Formular drücken

    Ist nur zum Anmelden ganz gut nur Leider muss ich auch danach noch irgendwie weiter Navigieren:

    Zum Anmelden selber habe ich jetz erstmal nen Sendkeys Enter geschickt. Klappt auch soweit nur hänge ich jetz an einer Stelle wo ich Links im Bild auf nen link klicken muss. Dieser beeinhaltet allerdings die Sessionid ist also immer anders. Wie bekomme ich also folgenden Reiter oder Link mittels VBA gedrückt? Eventuell über den Namen menuItem ? Aber wie spreche ich den dann an? Hmm

    Menuitem("Einzelabholauftrag").Click funktioniert leider nicht

    Bw is aber schonmal raus! Danke

    Code:
    <ul><li><a tabindex="5000" href="/abholportal/gw/web/order/Order.action;jsessionid=E486818CA5CE2C28476AC22AA9AF30C1.amsappl2?_sourcePage=%2FWEB-INF%2Fgspt%2Fdecorators%2FDecorator.gspt" class="menuItem ">Einzelabholauftrag</a></li></ul>
     
  4. 6. Mai 2012
    Zuletzt bearbeitet: 6. Mai 2012
    AW: HTML "Anmelden" button in Formular drücken

    ich beherrsche vb nicht, aber wenn du da n echtes DOM vor dir hast, dann müsste das formular ne methode namens "submit" haben, welche das formular so wie es ist abschickt.

    versuch es damit mal.

    ----------
    wie gesagt, wenn du n echtes DOM vor dir hast (mit allen APIs), dann kannst du mit nem CSS selektor arbeiten.

    so in der art:
    Code:
    ieApp.Document.querySelector("a[href^='/abholportal/gw/web/order/Order.action']").Click
     
  5. 10. Mai 2012
    AW: HTML "Anmelden" button in Formular drücken

    Ok Danke dafür habe meine Projekt auch erfolgreich abgeschlossen

    Allerdings habe ich noch eine Frage^^

    Wie bekomme ich aus dem Folgenden Code automatisch eine Auswahl getroffen?
    Das ist ne Auftragsseite von Hellmann und dort muss ich das Land über ne Auswahlbox auswählen. Natürlich soll auch das automatisch passieren aber leider versteh ich überhaupt nicht wie ich diese Box ansprechen kann da dort keine Option Values oder ähnliches sind.
    Hoffe von euch weiß das jemand dann bin ich glücklich

    Code:
    Land*</label></td>
     <td colspan="2">
     <table id="pc" class="postcode-city" style="width: 433px;"><tr>
     <td style="padding: 0px; vertical-align: middle"><script id="_ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_:_viewRoot:j_id22:j_id176" type="text/javascript">//<![CDATA[
     pcCountryChanged=function(){A4J.AJAX.Submit('_ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_:_viewRoot:j_id22',null,{'similarityGroupingId':'_ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_:_viewRoot:j_id22:j_id176','actionUrl':'/wps/myportal/hps/!ut/p/b1/pZDLboMwEEW_hmVrO1AeS0hoU4lQIKQBbyJkXCDlJUMo8PUx2Qcv6o1npHPPaAZgECNVezPQBqkKiACuk6HIkr5o6qRceqxeFOgY0A0tUzs5CH56yodn\x2DR7S7Q04gwgql\x2DNVbw9THznzdgiv8xG6Dvk7hHTsdubcGaGXfgcny9zq4Zi\x2Dc2m8IlVl0UxBHv0rD3dIvDNeQx6GBwCfPBOuG3RPBBiyAPA1AaCKDPyO7r6pKF83xtrze2jgzGjX3BihIJDgT0JoJ8E2yZaP3LqeO5gEu7zlfcNSymjds0mCX0ttL_XrmPdVCXySkJw6dKClx\x2DPgCGILVJhNRfHyG9jBXq7M7A5WNs6o/','parameters':{'_ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_:_viewRoot:j_id22:j_id176':'_ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_:_viewRoot:j_id22:j_id176','javax.faces.portletbridge.STATE_ID':'view:ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_'} ,'namespace':'ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_','containerId':'_ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_:_viewRoot'} )};
     //]]></script>
    
     <table id="pcCountry" class="ninja-container " style="display: inline-table">
     <tr><td class="ninja-layout-td" style="width: 40px"><input type="hidden" name="_ns_Z7_40L90NTBA7UL10IP4GPBQP18E7_:_viewRoot:j_id22:j_id183" />
     <span class="ninja-text " style="width: 40px" tabindex="30">&nbsp;</span>
     <div class="ninja-dropdown-container">
     <div class="ninja-dropdown" style="height: 250px; display: none;">
     <table class="ninja-content-table" style="width: 300px">
     <tr>
     <td colspan="2">(Bitte w&auml;hlen)</td>
     </tr>
     <tr title="AL">
     <td>AL</td>
     <td>Albanien</td>
     </tr>
     <tr title="AT">
     <td>AT</td>
     <td>&Ouml;sterreich</td>
     </tr>
     <tr title="BA">
     <td>BA</td>
     <td>Bosnien Herzegowina</td>
     </tr>
     <tr title="BE">
     <td>BE</td>
     <td>Belgien</td>
     </tr>
     <tr title="BG">
     <td>BG</td>
     <td>Bulgarien</td>
     </tr>
     <tr title="BY">
     <td>BY</td>
     <td>Weissrussland (Belarus)</td>
     </tr>
     <tr title="CH">
     <td>CH</td>
     <td>Schweiz</td>
     </tr>
     <tr title="CY">
     <td>CY</td>
     <td>Zypern</td>
     </tr>
     <tr title="CZ">
     <td>CZ</td>
     <td>Tschechische Republik</td>
     </tr>
     <tr title="DE">
     <td>DE</td>
     <td>Deutschland</td>
     </tr>
     <tr title="DK">
     <td>DK</td>
     <td>D&auml;nemark</td>
     </tr>
     <tr title="EE">
     <td>EE</td>
     <td>Estland</td>
     </tr>
     <tr title="ES">
     <td>ES</td>
     <td>Spanien</td>
     </tr>
     <tr title="FI">
     <td>FI</td>
     <td>Finnland</td>
     </tr>
     <tr title="FR">
     <td>FR</td>
     <td>Frankreich</td>
     </tr>
     <tr title="GB">
     <td>GB</td>
     <td>Vereinigtes K&ouml;nigreich</td>
     </tr>
     <tr title="GI">
     <td>GI</td>
     <td>Gibraltar</td>
     </tr>
     <tr title="GR">
     <td>GR</td>
     <td>Griechenland</td>
     </tr>
     <tr title="HR">
     <td>HR</td>
     <td>Kroatien</td>
     </tr>
     <tr title="HU">
     <td>HU</td>
     <td>Ungarn</td>
     </tr>
     <tr title="IE">
     <td>IE</td>
     <td>Irland</td>
     </tr>
     <tr title="IT">
     <td>IT</td>
     <td>Italien</td>
     </tr>
     <tr title="LI">
     <td>LI</td>
     <td>Liechtenstein</td>
     </tr>
     <tr title="LT">
     <td>LT</td>
     <td>Litauen</td>
     </tr>
     <tr title="LU">
     <td>LU</td>
     <td>Luxemburg</td>
     </tr>
     <tr title="LV">
     <td>LV</td>
     <td>Lettland</td>
     </tr>
     <tr title="MC">
     <td>MC</td>
     <td>Monaco</td>
     </tr>
     <tr title="ME">
     <td>ME</td>
     <td>Montenegro</td>
     </tr>
     <tr title="MK">
     <td>MK</td>
     <td>Mazedonien</td>
     </tr>
     <tr title="MT">
     <td>MT</td>
     <td>Malta</td>
     </tr>
     <tr title="NL">
     <td>NL</td>
     <td>Niederlande</td>
     </tr>
     <tr title="NO">
     <td>NO</td>
     <td>Norwegen</td>
     </tr>
     <tr title="PL">
     <td>PL</td>
     <td>Polen</td>
     </tr>
     <tr title="PT">
     <td>PT</td>
     <td>Portugal</td>
     </tr>
     <tr title="RO">
     <td>RO</td>
     <td>Rum&auml;nien</td>
     </tr>
     <tr title="RS">
     <td>RS</td>
     <td>Serbien</td>
     </tr>
     <tr title="RU">
     <td>RU</td>
     <td>Russland</td>
     </tr>
     <tr title="SE">
     <td>SE</td>
     <td>Schweden</td>
     </tr>
     <tr title="SI">
     <td>SI</td>
     <td>Slowenien</td>
     </tr>
     <tr title="SK">
     <td>SK</td>
     <td>Slowakei</td>
     </tr>
     <tr title="SM">
     <td>SM</td>
     <td>San Marino</td>
     </tr>
     <tr title="TR">
     <td>TR</td>
     <td>Tuerkei</td>
     </tr>
     <tr title="UA">
     <td>UA</td>
     <td>Ukraine</td>
     </tr>
     <tr title="XK">
     <td>XK</td>
     <td>Kosovo</td>
     </tr>
     </table>
     </div>
     </div>
     </td><td class="ninja-layout-td" style="width: 16px">
     <span class="ninja-arrow-image">&nbsp;</span>
     </td></tr>
     </table>
     <script type="text/javascript">
     new NinjaBox(jQueryTheme(jq("pcCountry")), "pcCountryChanged()", 'false', '15', '300px', "", "true", "");
     </script>
     </td><td style="vertical-align: middle">
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.