簡體   English   中英

JavaScript:使用autohotkey登錄網站

[英]JavaScript: Login on website using autohotkey

我是javascript和autohotkey編程的新手。 我正在嘗試登錄一個網站,但是到目前為止,我無法正確提交該表格。

這是頁面的HTML:

  <form ng-show="!maintenanceCritique" class="form ng-pristine ng-valid-pattern ng-valid-maxlength ng-valid ng-valid-required" name="formMobile" ng-submit="login(formMobile)" novalidate="" touch-submit=""> <div style="padding-top:30px;padding-left:20px;padding-right:20px"> <span>&nbsp;&nbsp;Code permanent</span><br> <input style="width:100%" name="codePermanent" ng-model="user.codePermanent" ng-pattern="/^[A-Za-z]{4}(0[1-9]|[12][0-9]|3[01]|6[3-9]|[78][0-9]|9[0-3]|99)([0,5][1-9]|[1,6][012]|13|63)[0-9]{4}$/" maxlength="12" tabindex="1" placeholder="(ex. : ABDC12034566)" autofocus="" required="" class="ng-pristine ng-valid-pattern ng-valid-maxlength ng-not-empty ng-valid ng-valid-required ng-touched"> <br><br> <span>&nbsp;&nbsp;NIP</span><br> <input style="width:100%" type="password" name="password" ng-model="user.password" ng-pattern="/^[0-9]{5}$/" maxlength="5" tabindex="2" placeholder="(ex. : 12345)" required="" class="ng-pristine ng-valid-pattern ng-valid-maxlength ng-not-empty ng-valid ng-valid-required ng-touched"> <div> <!-- ngIf: formMobile.codePermanent.$error.required && formMobile.password.$error.required && submitted --> <!-- ngIf: err --> </div> <br> <div style="text-align:right"> <button class="btn btn-default btn-inverse btn-lg btn-login text-uppercase" type="submit" click="submitted=true" tabindex="3"> <span style="height:60%;width:140px;text-transform:none;font-family:'Conv_Dosis',arial,sans-serif; font-size:100%">Connexion</span> </button> </div> </form> </div> 

這是我的代碼:

WB := ComObjCreate("InternetExplorer.Application")
WB.Visible := True
WB.Navigate(URL)

loop
If !WB.busy
 break
sleep 1000


WB.document.getElementsByName("codePermanent")[0].focus()
WB.document.getElementsByName("codePermanent")[0].value := "username"
sleep 1000
WB.document.getElementsByName("password")[0].focus()
WB.document.getElementsByName("password")[0].value := "password"

form := WB.document.getElementsByName("form")[0]
form.method := "post"
form.submit()

您可以嘗試以下方法:

wb.document.getElementsByClassName("btn btn-default btn-inverse btn-lg btn-login text-uppercase")[0].click()

如果該按鈕是該類名稱在頁面上的第一個按鈕,則將單擊“提交”按鈕。 請記住, getElementsByClassName()返回一個nodelist ,因此您必須通過在方括號中包含其引用來指定要單擊的特定元素。

從那里開始,只需使用.click()方法即可。

如果這回答了您的問題,請標記為已回答的問題。 如果沒有,請告訴我,以便我們得到答復。

您的問題是您永遠不會獲得form元素。 您正在嘗試通過其標簽名稱訪問它,但是您正在使用getElementsByName方法。 相反,您應該使用getElementsByTagName方法:

WB := ComObjCreate("InternetExplorer.Application")
WB.Visible := True
WB.Navigate(URL)

While WB.readyState!=4 || WB.document.readyState!="complete" || WB.busy
   Sleep 50

WB.document.getElementsByName("codePermanent")[0].value := "username"
WB.document.getElementsByName("password")[0].value := "password"
Sleep 1000
form := WB.document.getElementsByTagName("form")[0] ; TagName - not Name
form.method := "post"
form.submit()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM