【问题标题】:Vba to IE Click JavaScript button no IdVba to IE Click JavaScript button no Id
【发布时间】:2018-10-25 12:52:36
【问题描述】:

我正在尝试编写一个 vba 来从 excel 中填写表单详细信息,然后使用 .我是 vba 的新手,除了如何单击提交按钮之外,一切都已弄清楚。

我的代码是

Dim a
Set a = doc.getElementsByClassName("button")(1)
a.Click

Do While ie.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop

没有出现错误,但它似乎没有做任何事情。通常,当单击提交按钮时,屏幕上会弹出一条消息说“已上传详细信息”,但 URL 不会更改。

来自网站的源代码是

<a class="button" onclick="document.getElementById('CustomTableInbox').innerHTML='';JS_UpdateTrack();" href="javascript:;">Submit</a>

任何帮助都会很棒!

【问题讨论】:

  • 你试过简单的 ie.document.getElementsByTagName("form")(0).Submit 吗?或者,ie.document.querySelector(".buttons-div a").Click ?
  • ie.document.getElementsByClassName("buttons-div")(0).getElementsByTagName("a")(0).FireEvent "onclick"
  • 这些有用吗?
  • 你建议的第一个效果很好,非常感谢!虽然似乎无法接受它作为答案.. 抱歉
  • 我已添加为您可以点击的答案。你不能在 cmets 中这样做。对不起。

标签: javascript excel vba internet-explorer web-scraping


【解决方案1】:

试试

Ie.document.getElementsByTagName("form")(0).submit

这通过索引和标签获取表单,然后使用提交方法。

【讨论】:

    【解决方案2】:

    尝试参考下面的示例可能会帮助您解决问题。

    HTML 代码:

    <html>
    <head>
    </head>
    <body>
    <h2>Sample Page</h2>
    <a href="http:\\Microsoft.com">Submit</a>
    </body>
    </html>

    VBA 代码:

    Sub demo()
    Dim ie As InternetExplorer
    Dim html As HTMLDocument
    Dim Link As Object
    Dim ElementCol As Object
    
    Application.ScreenUpdating = False
    
    Set ie = New InternetExplorer
    ie.Visible = True
    
    ie.navigate "C:\Users\Administrator\Desktop\demo57.html" 'Change the URL  as your requirement...
    
    Do While ie.readyState <> READYSTATE_COMPLETE
    
    DoEvents
    Loop
    
    Set html = ie.Document
    Set ElementCol = html.getElementsByTagName("a")
    
    For Each Link In ElementCol
    
    If Link.innerHTML = "Submit" Then
    Link.Click
    
    End If
    Next Link
    
    Set ie = Nothing
    
    Application.ScreenUpdating = True
    End Sub

    输出:

    此外,您可以尝试根据您的要求修改代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-01
      • 2022-12-27
      • 1970-01-01
      • 2022-12-01
      • 2011-11-02
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多