【问题标题】:Webpage button will not respond to getElementById网页按钮不会响应 getElementById
【发布时间】:2020-03-08 13:55:02
【问题描述】:

我尝试了许多不同的方法,但无法从 VBA 获得响应网页的按钮。 我正在尝试的代码:

Set btn = IE.document.getElementById("gs-address-go")
btn.FireEvent ("onmousedown")
btn.FireEvent ("onclick")
btn.Focus
btn.Click

对象的 HTML 提取:

<button id="gs-address-go" class="b-btn bold go-btn" onclick="$('#splash-get-walkscore-form').submit(); return false;" aria-label="Go"><span class="icon big-search"></span></button>

任何帮助表示赞赏

【问题讨论】:

  • 函数调用与其参数之间不应有任何空格。 btn.FireEvent("onmousedown")不是 btn.FireEvent ("onmousedown")
  • 你试过btn.form.submit这个walkscore-form').submit(); 让我觉得它是一个表单提交按钮。
  • 可以分享一下网址吗?

标签: html vba internet-explorer getelementbyid


【解决方案1】:

我发现我可以简单地使用https://www.walkscore.com/score/B30 3LT,并将 B30 3LT 作为搜索条件。以上似乎都不起作用。

【讨论】:

  • 感谢您发布此问题的解决方案。我尝试了您提供的网站,我发现我们可以在按钮单击之前添加等待,然后单击功能可以工作。你可以查看我更新的答案。
【解决方案2】:

是否有错误,哪一行抛出错误?按钮可以在没有 VBA 的情况下在 IE 中提交表单吗?我试过你的代码,它工作。您可以参考下面的简单示例:

VBA 代码:

Sub LOADIE()
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "https://www.walkscore.com/score/1730-blake-st-denver-co-80202"
    Do Until IE.readyState = 4
       DoEvents
    Loop

    Set searchbar = IE.document.getElementById("addrbar-street")
    searchbar.Value = "B30 3LT"
    Application.Wait (Now + TimeValue("0:00:03"))        'add a wait here  
    Set btn = IE.document.getElementById("gs-address-go")
    btn.FireEvent ("onmousedown")
    btn.FireEvent ("onclick")
    btn.Focus
    btn.Click

    'IE.Quit
    'Set IE = Nothing
End Sub

此外,您还可以尝试btn.FireEvent "onmousedown"btn.FireEvent "onclick"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 2019-05-04
    相关资源
    最近更新 更多