如何使用vba登录网站?

时间:2016-05-31 13:13:42

标签: 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

1 个答案:

答案 0 :(得分:0)

我可以看到:

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

我猜测每次发出请求时都会生成此ID (是的,每当我刷新这个网站时,这个元素都有新的ID),所以 您不能将静态ID作为键传递给elementById您应该尝试其他选项来获取此特定元素您想要填充数据。 也许你的库支持gettibng by属性,所以你可以获得带属性的元素

name='username'

另外一个主张: 您正在使用html通过Web界面发出请求,但您可以尝试省略登录以发出纯粹的请求。 正如我在填写数据和推送时看到的那样,我的浏览器正在发送 POST请求:

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

我不知道你对WebAPI等的知识有多大,但如果需要更多帮助,你可以写信给我