Clicking a button in Internet Explorer using VBA (getElementsByClassName)

别说谁变了你拦得住时间么 提交于 2020-01-03 04:34:30

问题


I'm trying to click a button within an Internet Explorer window using VBA and HTML. The button has no "id" so I have to locate it by "classname."

The button's HTML code is as follows:

<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only`"

VBA Code:

Private Sub CommandButton21_Click()

Const cURL = "xxxxxx.com"
Const cUsername = "xxxxxx"
Const cPassword = "xxxxxx"

Dim IE As InternetExplorer
Dim doc As HTMLDocument
Dim LoginForm As HTMLFormElement
Dim UserNameInputBox As HTMLInputElement
Dim PasswordInputBox As HTMLInputElement
Dim SignInButton As HTMLInputButtonElement
Dim CVBATButton As HTMLInputButtonElement
Set IE = New InternetExplorer

IE.Visible = True
IE.navigate cURL

Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop

Set doc = IE.document



'A previous login window that leads me into a new window, where I need to click a button.

Set LoginForm = doc.forms(0)
Set UserNameInputBox = doc.getElementById("BIA_Login")
UserNameInputBox.Value = cUsername
Set PasswordInputBox = doc.getElementById("BIA_Pass")
PasswordInputBox.Value = cPassword
Set SignInButton = doc.getElementById("login")
SignInButton.Click

'It's this portion of the code below that I'm struggling with

Set doc = IE.document
Set LoginForm = doc.forms(0)
Application.Wait Now + TimeValue("00:00:03")
Set CVBATButton = doc.getElementsByClassName("ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only")
CVBATButton.Click

回答1:


I had the same Error, try this (it worked for me):

Set CVBATButton = doc.getElementsByClassName("ui-button ui-widget ui-state-
default ui-corner-all ui-button-text-only")
  For Each btn In CVBATButton
     btn.Click
     Exit For
  Next



回答2:


getElementsByClassName returns a collection. You will need to access the first index, or iterate over the collection.

Set CVBATButton = doc.getElementsByClassName("ui-button ui-widget ...")(1)
CVBATButton.Click


来源:https://stackoverflow.com/questions/38077447/clicking-a-button-in-internet-explorer-using-vba-getelementsbyclassname

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!