2016-05-31 144 views
0

我想用vba登錄所提到的網站,但無法通過。kindly協助。我正在嘗試登錄的網站包含一個表單,我們可以填寫我們的憑據。雖然網站打開時使用了下面列出的代碼,但是沒有任何反應。如何使用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 = "[email protected]" 
'HTMLDoc.all.input_5ac52c16-cbba-4fb4-b284-857fac1f55fd.Value =  "[email protected]" '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 

回答

0

,我可以看到這一點:

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

我猜這個ID生成每一個你正在請求 時間(是的,每次我刷新這個網站這個元素得到了新的ID),所以 您不能傳遞靜態ID作爲key來獲取elementById您應該嘗試使用其他選項來獲取您要填充數據的特定元素。 也許你的庫由屬性支持gettibng所以,你可以得到元素與屬性附加傷害

name='username' 

一個額外的命題: 您正在使用的HTML,使通過網絡接口的要求,但你可以嘗試ommit登錄電子只是爲了讓純粹的要求。 當我看到的時候填的數據和推提交我的瀏覽器發送 POST請求:

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

我不知道如何大,你對的WebAPI等知識,但你可以寫信給我,如果需要更多的幫助

+0

我從來沒有嘗試過通過vba的「發佈請求」。如果你能夠爲我的項目提供更多幫助,我將不勝感激。 –

+0

肯定的事情,只是讓我更多的細節,通過像 #slack或任何你的項目使用 –

+0

一些溝通媒介嗨,所以我的問題是我想用我的用戶名登錄到http://www.markit.com/和密碼。但我無法登錄,我仍然懷疑爲什麼我無法使用上述編碼登錄。你會介意我們是否可以進一步討論這個使用什麼應用程序或Facebook .. –