Not able to submit a HTML form

musicgold

Board Regular
Joined
Jan 9, 2008
Messages
197
Hi,

The following code tries to populate the login form of my library account and submit the form.

This code used to work fine until a few months ago. Now I am able to populate the account information but the submit action doesn't seem to work.
On the other hand, if I stop the macro before the submit action and click the submit button manually, I am able to log in.

Why is this happening?

Code:
....
 Dim ObjIE As New SHDocVw.InternetExplorer
 Dim htmlDoc As MSHTML.HTMLDocument
 Dim htmlInput As MSHTML.HTMLInputElement
 Dim htmlColl As MSHTML.IHTMLElementCollection


    Set ObjIE = CreateObject("InternetExplorer.Application")
    ObjIE.Visible = 1
     ObjIE.navigate "https://account.torontopubliclibrary.ca/signin "
    
   
      Do While ObjIE.Busy: DoEvents: Loop
      Do While ObjIE.readyState <> 4: DoEvents: Loop
    

     Set htmlDoc = ObjIE.document
      htmlDoc.getElementById("userId").Value = "23xx98064646xxx4"
      htmlDoc.getElementById("password").Value = ""
     [COLOR="#FF0000"] htmlDoc.getElementById("form_signin").submit[/COLOR]

....









Thanks
 

Excel Facts

Why are there 1,048,576 rows in Excel?
The Excel team increased the size of the grid in 2007. There are 2^20 rows and 2^14 columns for a total of 17 billion cells.
Since the button resides within the Forms collection, you'll need to refer to it via the Document property of the Form object...

Code:
htmlDoc.forms(0).Document.querySelector("button[value='Sign In']").Click

You'll notice that the more efficient querySelector method is used in order to get the button. This eliminates the need to loop through the buttons collection in order to get the desired button.
 
Last edited:
Upvote 0
Since the button resides within the Forms collection, you'll need to refer to it via the Document property of the Form object...

Code:
htmlDoc.forms(0).Document.querySelector("button[value='Sign In']").Click

You'll notice that the more efficient querySelector method is used in order to get the button. This eliminates the need to loop through the buttons collection in order to get the desired button.

While the button issue is resolved, I am noticing another issue - the userID line. The macro is able to input the userID value in the box when it is run using Excel VBA, but that line of code doesn't seem to when the macro is run as a vbscript. The vbscript is however able to input the password value.

What am I missing?

Thanks
 
Upvote 0

Forum statistics

Threads
1,224,823
Messages
6,181,176
Members
453,021
Latest member
Justyna P

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top