2016-05-12 9 views
1

Ich habe hier ein Skript gefunden, um mich in ein Forum einzuloggen, das jemand gemacht hat und ich habe es bearbeitet, um mich bei Dropbox anzumelden, aber es funktioniert immer noch nicht für mich. Ich suche nach dem Skript, um das Kontrollkästchen "An mich erinnern" zu deaktivieren und mich in Dropbox aus einer VBS-Datei einzuloggen, die ich auf brandneuen Computern ausführe. Hier ist das, was ich bisher:Login zu Dropbox mit vbscript

Call Main 

Function Main 
    Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_") 
    IE.Visible = True 
    IE.Navigate "dropbox.com/login" 
    Wait IE 
    With IE.Document 
     .getElementByID("login_email").value = "mypassword" 
     .getElementByID("login_password").value = "myemail" 
     .getElementByID("remember_me").checked = "unchecked" 
     .getElementsByName("frmLogin")(0).Submit 
    End With 
End Function 

Sub Wait(IE) 
    Do 
    WScript.Sleep 500 
    Loop While IE.ReadyState < 4 And IE.Busy 
End Sub 

ich die ID ist geändert, dass es „bekommt“, um den Benutzernamen und das Passwort zu setzen, aber die „frmLogin“ Ich bin nicht sicher.

Antwort

0

Betrachten Sie das folgende Beispiel Knoten Zugänglichkeit erweiterte Prüfungen mit und unter Verwendung von .click Verfahren statt .submit, da der letzte für mich zu 403 Fehlerseite führt:

Option Explicit 

Dim objIE, strMsg 

DropBoxLogin objIE, strMsg 
MsgBox strMsg 

Sub DropBoxLogin(objIE, strMsg) 
    Set objIE = CreateObject("InternetExplorer.Application") 
    objIE.Visible = True 
    objIE.Navigate "https://www.dropbox.com/login" 
    Wait objIE 
    If Not IsNull(objIE.Document.getElementById("header-account-menu")) Then 
     strMsg = "Already logged in" 
    Else 
     WaitElementById objIE, "regular-login-forms" 
     With objIE.Document.getElementsByClassName("login-form")(0) 
      .item("login_email").value = "[email protected]" 
      .item("login_password").value = "mypassword" 
      .item("remember_me").checked = False 
      .getElementsByTagName("button")(0).click 
     End With 
     WaitElementById objIE, "header-account-menu" 
     Wait objIE 
     strMsg = "Log in completed" 
    End If 
End Sub 

Sub Wait(objIE) 
    Do While objIE.ReadyState < 4 Or objIE.Busy 
     WScript.Sleep 10 
    Loop 
    Do Until objIE.Document.readyState = "complete" 
     WScript.Sleep 10 
    Loop 
End Sub 

Sub WaitElementById(objIE, strId) 
    Do While IsNull(objIE.Document.getElementById(strId)) 
     WScript.Sleep 10 
    Loop 
End Sub 
+0

Großartig, danke! –

+0

@ChaseSchwab Bitte klicken Sie, um diese Antwort zu akzeptieren, wenn es hilft. – omegastripes

+0

Ich sehe nicht, wo es als Antwort zu markieren ist –