我对此一无所知。
我正在处理的项目的一部分需要与 HTML 表单交互,以在基于 Web 的外部工具上显示正确的页面。我已经设法让这个表单接受输入的变量并使用 document.write 动态生成,但我无法可靠地以不会抛出错误 91 的方式触发“提交”操作.
到目前为止,我一直在使用一个简单的 getelementbyid.click 调用......这是我试图让它触发的一些事情的列表:
TestLoop:
Pause (1)
BrowserControl.document.getelementbyid("Submit").click
On Error Goto TestLoop
*(“错误循环”策略根本不起作用。)
Pause (3)
BrowserControl.document.getelementbyid("Submit").click
(这实际上效果最好,但是由于不同的 PC 可能具有不同的硬件规格和可能会减慢速度的开放应用程序,所以对我有用的方法对其他测试人员不起作用。如果我让它太长,我最终会添加额外的延迟到我已经担心太慢的表格。)
<script type="text/javascript">
window.onload = function(){
document.getElementById('Submit').click();;
}
</script>
(在生成的 HTML 中嵌入自动触发器,令人沮丧的是,它在嵌入式 Web 浏览器控件的外部工作,但在它内部不起作用。)
Private Sub wb_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
If Me.BrowserControl.Document.URL= "about:blank" Then
BrowserControl.document.getelementbyid("Submit").click
End If
End Sub
(出于某种疯狂的原因,使用 debug.print 我发现它说导航在它实际完成之前就已经完成了,所以这根本不起作用。)
我可能错过了一些......我一直在从不同的角度攻击这个。诀窍是我必须使用 HTML 表单与我没有管理员权限的系统进行交互,因此更改接收信息的方式并不是一个真正的选择。
我最后的想法是看看我是否可以使用直接的 VB 模拟 FORM 提交,绕过对“单击”事件的需要,但是要搜索与 Access 2007 Forms 的 HTML FORM 交互相关的内容非常困难。:P
任何帮助将不胜感激!