我在这个方面已经结束了。
我正在处理的项目的一部分需要与HTML表单进行交互,以在基于Web的外部工具上显示正确的页面。我已经设法使这个表单接受输入的变量并使用document.write动态生成,但是我无法可靠地执行的操作是以不会抛出错误的方式触发'Submit'操作
到目前为止,我一直在使用一个简单的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表单的HTML FORM交互相关的内容非常困难。 :P
非常感谢任何帮助!
答案 0 :(得分:0)
那么,在经过7个月的测试和数千次激活之后,拆分“工作”似乎已经成功了。
Form_Open:初始化浏览器对象并将其地址设置为about:blank
Form_Current:使用Document.Write调用“绘制”Web表单的公式,然后进入循环...
TestLoop:
BrowserControl.document.getelementbyid("Submit").click
On Error Goto TestLoop