2017-04-02 5 views
1

Ich versuche, auf einer Website mit VBA anmelden, aber ich kann es nicht auf den Absenden-Button klicken, obwohl ich die Dinge tun, die ich gefunden habe empfohlen. Jede Hilfe würde sehr geschätzt werden.VBA-Anmeldung fehlgeschlagen mit getElementsByClassName

Unten ist der HTML-Code der Form:

<div class="pdForm login"> 
    <div class="pdLoginBox"> 
    <div class="pdLoginBoxInner"> 

    <div class="pdLoginFieldTitle"> 
     <div>Email Address</div> 
     <div class="register"></div> 
    </div> 
    <input type="email" name="email" value="" class="pdInput text" id="pdLogin-email"> 

    <br> 
    <div class="pdLoginFieldTitle"> 
     <div>Password</div> 
     <div class="forgot"><a href="http://myaccount.asdf.com/retrievePassword.php" onclick="pdRetrievePasswordCopyEmail(this);"> Forgot your Password?</a></div> 
    </div> 
    <input type="password" name="password" value="" class="pdInput text" id="pdLogin-password"> 

    <div class="pdLoginBtn"> 
     <input type="image" src="http://myaccount.asdf.com/skins/standard_custom/butLogin.gif" border="0" vspace="4"> 
    </div> 
     <div class="pdRegisterBtn"> 
    </div> 

    </div> 
    </div> 
</div> 

Hier ist die VBA, die ich versucht habe, und es füllt den Namen und das Passwort aber vorlegen nicht einmal durch den Code ohne Fehler läuft.

Sub Login() 
    Dim lr As Long, a 

    Set IE = CreateObject("InternetExplorer.Application") 

    my_url = "http://myaccount.asdf.com/login.php" 

    With IE 
     .Visible = True 
     .Navigate my_url 
     .Top = 50 
     .Left = 530 
     .Height = 1200 
     .Width = 1200 

     Do Until Not IE.Busy And IE.READYSTATE = 4 
      DoEvents 
     Loop 

    End With 

    ' Input the userid and password 
    IE.Document.GetElementById("pdLogin-email").Value = "[email protected]" 
    IE.Document.GetElementById("pdLogin-password").Value = "xxxxxx" 

    Set ElementCol = IE.Document.getElementsByClassName("pdLoginBtn") 

    For Each btnInput In ElementCol 
     btnInput.Click 
    Next btnInput 

End Sub 

Irgendwelche Ideen? Vielen Dank im Voraus für Ihre Zeit.

Antwort

0

Funktioniert das für Sie?

Set ElementCol = IE.document.getElementsByClassName("pdLoginBtn").Children(0) 
ElementCol.Click 
+0

Vielen Dank für Ihre Antwort. Das gibt mir einen Laufzeitfehler: "Objekt unterstützt diese Eigenschaft oder Methode nicht". – Southerncentralrain

+0

Die vorgeschlagene Codezeile setzt voraus, dass ElementCol als Element deklariert ist und nicht als Elementsammlung. Können Sie mir die Adresse der Website mitteilen, an der Sie sich anmelden möchten? – sktneer

Verwandte Themen