简体   繁体   中英

How to login to a website using vba?

I am trying to login the mentioned website using vba but unable to get through.kindly assist. The website i am trying to logging contains a form where we are suppose to fill our credentials.though, the website is opening using the below enlisted code but nothing happens post that.

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

As I can see this:

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

I'm guessing that this ID is generated every time you are making request (yep, everytime I'm refreshing this site this element got new ID ), so You cannot pass static ID as key to get elementById You should try other options to get this specific element You want to fill with data. Maybe Your library supports gettibng by attribute so, You can get element with atribute

name='username'

One additional proposition : You are using html to make request via web Interface, but You could try to ommit loging in just to make pure requests. As I see when filling data and pushing Submit my browser is sending POST request :

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

I dont know how large is your knowledge about WebAPI and etc. but You can write to me if need more help

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM