簡體   English   中英

如何使用vba登錄網站?

[英]How to login to a website using vba?

我正在嘗試使用vba登錄提到的網站,但無法獲得幫助。 我正在嘗試登錄的網站包含一個我們要填寫憑據的表格。盡管,該網站正在使用下面列出的代碼打開,但發布后沒有任何反應。

Dim HTMLDoc as HTMLDocument
Dim My Browser as Internet Explorer
Sub MYRED()

Dim MyHTML_Element As IHTMLElement
Dim MyURL as String
On Error GoTo Err_Clear
MyURL = "https://www.Markit.com"
Set MyBrowser = New InternetExplorerMedium
MyBrowser.Silent = True
MyBrowser.navigate MyURL`enter code here`
MyBrowser. Visible = True`enter code here`
Do
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser. Document
'Useridele = "input_5ac52c16-cbba-4fb4-b284-857fac1f55fd"
MyBrowser.document.getElementById ("input_5ac52c16-cbba-4fb4-b284-               857fac1f55fd").Value = "user@example.com"
'HTMLDoc.all.input_5ac52c16-cbba-4fb4-b284-857fac1f55fd.Value =     "atul.sanwal@markit.com" 'Enter your email id here
 passele = "input_b14b8d03-75b6-49b5-a61a-602672036046"
 MyBrowser.document.getElementById("input_b14b8d03-75b6-49b5-a61a-  602672036046").Value = "***************"
'HTMLDoc.all.passele.Value = "12345678" 'Enter your password here
 For Each My Html_Element in HTMLDoc.getElementsByTagName("input")
 If MyHTML_Element.Type = "submit" Then MyHTML_Element.Click: Exit For
 Next
 Err_Clear: 
 If Err <> 0 Then
 Err.Clear
 Resume Next
 End If
 End Sub

如我所見:

"input_5ac52c16-cbba-4fb4-b284-857fac1f55fd")

我猜測每次發出請求時都會生成此ID(是的,每次我刷新此站點時,此元素都會獲得新ID),因此您不能將靜態ID用作獲取elementById的鍵,應該嘗試其他方法來獲取您要填充此特定元素的數據。 也許您的庫按屬性支持gettibng,所以,您可以獲取帶有屬性的元素

name='username'

另一個建議:您正在使用html通過Web Interface發出請求,但是您可以嘗試省略登錄以僅發出純請求。 正如我看到的那樣,在填充數據並推動Submit時,我的瀏覽器正在發送POST請求:

POST /home/UFEExternalSignOnServlet HTTP/1.1
Host: products.markit.com

我不知道您對WebAPI等有多少了解,但是如果需要更多幫助,可以給我寫信

暫無
暫無

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

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