IE Automation VBA - 隐藏按钮

时间:2018-05-17 19:52:19

标签: vba internet-explorer button automation

我正在尝试通过网站自动登录,并且遇到了我认为是隐藏按钮的内容。

使用inspect元素,我必须使用它。

<button onclick="javascript:ga('send', 'event', 'Sign In','click','Sign In');" type="submit">Sign In</button>

我已尝试使用getElementByIdgetElementsByTagNamegetElementsByName等,但我不熟悉隐藏的项目或如何访问它们。是否有循环方式和隐藏项目的ID标签?

网址是: https://www.eurocarparts.com/login

任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

循环所有文档按钮,直到找到类型为&#34;提交&#34;和&#34;登录&#34;内:

Set allButtons = YOURIEOBJ.document.getElementsByTagName("button")
Do While i < allButtons.Length
    If allButtons(i).Type = "submit" And allButtons(i).innerText = "Sign In" Then
        allButtons(i).Click
        Exit Do
    End If
    i = i + 1
Loop

有时innerText并没有给你&#34;登录&#34;。你可以使用.Text或.innerHTML,其中一个会给你&#34;登录&#34;。

答案 1 :(得分:1)

在这里使用CSS Selector

需要VBE&gt;工具&gt;参考文献&gt; Microsoft HTML对象库和Internet控件

Option Explicit

Public Sub GetButton()

    Dim IE As New InternetExplorerMedium, html As HTMLDocument '<==InternetExplorerMedium rather than InternetExplorer because for some reason I was getting interface unknown without the change

    With IE
        .Visible = True
        .navigate "https://www.eurocarparts.com/login"
        While .Busy Or .readyState < 4: DoEvents: Wend
        Set html = .document
    End With

    Dim button As HTMLButtonElement
    Set button = html.body.querySelector("body > section > section.container.content-section.cookiebar > section.row.account-container > div.col-xs-12.col-sm-6.col-md-6.account-box.first > div > form > button")

End Sub

如果您在紧邻的窗口中输入以下内容:

?button.innerhtml

你得到:

Sign In

注意:@ SIM的优秀缩写。

.querySelector("button[onclick*='Sign In']").Click