Just need to have a better understanding of using the internet explorer object in VBA. So I want to click the following button with a code as following
<a id="DLG_VARIABLE_dlgBase_BTNOK" ct="B" st="" href="javascript:void(0);" class="urBtnEmph" ocl="sapbi_page.sendCommandArray([['TARGET_DIALOG_REF','DLG_VARIABLE',0],['BI_COMMAND_TYPE','OK',0]],event);" onkeydown="ur_Button_keypress(event);" onclick="ur_Button_click(event);" style="text-align:center;overflow:visible;">OK</a>
My code is as following -
Dim IE As InternetExplorer 'Reference to Microsoft Internet Controls
Set IE = New InternetExplorer
With IE
.Visible = True
.Navigate2 "Somewebsite"
.Document.getelemetbyclass("urBtnEmph").Click
End With
End Sub
but when I try to run it, it says
'Object doesn't support this property or method'.
I'm very new to this internet explorer object and javascript :(
Edit: I had changed the line to ' .Document.getelementsbyclass("urBtnEmph").Click' however still have the same warning.
Then I tried this '.Document.getElementById("DLG_VARIABLE_dlgBase_BTNOK").Click' and it shows 'Object variable or with block variable not set'. I had attached the html code for this button
Please check the Common VBA Methods & Properties used in web automation , you could use the getElementsByClassName or getElementById method to access web page element.
When using the getElementsByClassName method, it will return multiple elements with the same class name, so, if we want to get the special element, we could find it from the array list.
So, please modify your code as below:
Public Sub ClickTest()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
.Navigate2 "<website url>"
While .Busy Or .readyState <> 4: DoEvents: Wend
'ie.Document.getElementbyId("DLG_VARIABLE_dlgBase_BTNOK").Click // it also work well. find element by id
ie.Document.getElementsByClassName("urBtnEmph")(0).Click
End With
End Sub
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.