I am stuck at a specific point in coding VBA. Using VBA I am logging onto an Intranet portal which is a file management system and opening a series of dynamic web pages one after the other. Using VBA I am trying to get a checkbox element checked. Once this element is checked, all sub-elements appearing in a table below get checked automatically. After this I need to initiate download of all the selected files. However, I cannot get the checkbox element "checked".
Here is the HTML as it appears on the web-page. I cannot share the link as it is intranet and confidential.
Link to the HTML as I am not allowed to post images yet
Here is my VBA code:
Set inpute = objIE.Document.queryselector("div[id=gridx_Grid_2] div div div table tbody tr td span[aria-checked=false]")
inpute.setAttribute("aria-checked") = True
inpute.Click
When the above code is run, the "aria-selected" attribute changes to "true" in the HTML but Click has no effect on the checkbox. I have tried using the getElementbyClassName method and using Click after that to no avail.
Please help me out on this issue. Do let me know in case you need any other information.
This solution from Zwenn worked perfectly:
First of all, a checkbox has no click event. On topic: Because the whole List of other checkboxes will be marked by marking the one in question, I'am pretty sure the one in question triggers a HTML event like change when you mark it manually. You must check which event it is and trigger it with VBA. You can look for the event with FireFox or Chrome, but not with the IE. Look here how to do that and how to handle with events:
Automate IE via Excel to fill in a dropdown and continue
– Zwenn 14 hours ago