excel - 无法单击网络表单中的按钮
问题描述
我似乎找不到点击网页按钮的方法,请参见下面的 html。这是id="item_knopBer2"
我试图获得点击。我花了几个小时尝试我可以在这里找到的所有变体,例如:FireEvent
,,但到目前为止,我完全沮丧地注意到工作querySelectorAll
。querySelector
拜托,有人我在这里想念什么?
<span class="PrintHide spBerB tooltipL" id="item_knopBer2" title="knopberekening" style="padding-right: 14px; ">
<input class="Knopber" onclick="wisSalSc(); this.className = 'KnopberActive'; javascript: ProformaVerslag('B');"
onmouseover="this.className='KnopberHover'" onmouseout="this.className='Knopber'" type="button" value='Berekenen'/>
</span>
解决方案
这是一个跨度而不是一个按钮。Fireevent 不会再工作了。如果它应该与事件一起工作,您必须调度一个事件。尝试这个:
Dim nodeItem_knopBer2 As Object
'Your code
'...
On Error Resume Next
Set nodeItem_knopBer2 = browser.document.getElementByID("item_knopBer2")
On Error GoTo 0
If Not nodeItem_knopBer2 Is Nothing Then
Call TriggerEvent(browser.document, nodeItem_knopBer2, "click")
'Maybe
'Call TriggerEvent(browser.document, nodeItem_knopBer2, "onClick")
End If
'Rest of your code
'...
通过此过程,您可以移交所需的事件:
Private Sub TriggerEvent(htmlDocument As Object, htmlElementWithEvent As Object, eventType As String)
Dim theEvent As Object
htmlElementWithEvent.Focus
Set theEvent = htmlDocument.createEvent("HTMLEvents")
theEvent.initEvent eventType, True, False
htmlElementWithEvent.dispatchEvent theEvent
End Sub
如果这不起作用,您必须发布 url 和您的宏代码。
推荐阅读
- runtime - FileMaker 14 Runtime / High Sierra / 从服务器下载与复制
- sql-server - SQL Server 检查表中的特定字段是否已更新
- android - 拥有与 Google Playstore 帐户相同的 Firebase 帐户是否重要?
- javascript - bootstrap-vue,SyntaxError 意外标识符
- vba - 将数据加载到 Veriable UserForms 和控件中
- angular - 在角度上获取json文件
- c# - 处理来自 API 的响应
- java - 为什么一个非常大的双输入返回“Infinity”而不是 Java 中的错误?
- visual-studio - 在单独的 PC 上构建 Qt 时缺少依赖项
- html - pwa 应用没有使用清单图标安装在 android 中