【发布时间】:2017-12-30 16:29:12
【问题描述】:
我在 Microsoft Visual Studio 中使用 VB 创建自动化,就像一个应用程序 项目路径为 Visual Basic>windows 经典桌面>windows 窗体 应用程序(.NET 框架)。 代码是使用 VBA 编写的,它是一种形式 用户输入并将其粘贴到网络表单中,然后单击提交按钮并创建票证。 我已经通过 VBA excel 运行了这个自动化。但是由于某些情况,我需要将其创建为独立的应用程序。我在单击提交按钮时遇到问题。有人可以帮我把代码正确。
这是取自查看源代码的 HTML 元素
<input type="hidden" name="ticket_type" id="ticket_type" value="" />
<input type="hidden" name="quicklink_id" id="quicklink_id"value="0"/>
<textarea name="work_log" style="display:none"></textarea>
<textarea name="correspondence" style="display:none"></textarea>
<div id="action_bar" class="cti-search-enabled">
<div id="button_bar">
<a class="tt_button orange_button" href="#" onclick="ajax_submit()">
<span>Submit Ticket</span></a>
<a class="tt_button" href="#" onclick="build_quicklink()">
<span>Save as New Quicklink</span></a>
您可以看到有两个按钮,一个是提交工单和另存为新的快速链接。我需要点击提交工单按钮。在VBA中使用的早期代码是
Call sel.executeScript("ajax_submit()", "javascript")
这是我在 .net 中的代码
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
Handles WebBrowser1.DocumentCompleted
MessageBox.Show("Document loading completed!")
Me.WebBrowser1.Document.ExecCommand("ajax_submit()", "javascript")
End Sub
所以一旦表单被加载,它会显示一个消息框,然后应该点击提交按钮。但是这显示错误为
严重性代码描述项目文件行抑制状态 错误 BC30455 未为“Public Overloads Sub ExecCommand(command As String,showUI As Boolean,value As Object)”的参数“value”指定参数。我的_First
有人可以帮助我了解代码应该如何。对不起,我是 .net 的初学者(以及 VBA)
【问题讨论】:
-
试试
Me.WebBrowser1.Document.All("ID-Of-The-Button").InvokeMember("Click") -
按钮没有任何 Id,但具有如下的类和名称 提交工单跨度>
-
好吧,那就用名字吧。
-
得到了它的工作,但我现在面临另一个问题。它带有等待声明。 Threading.Thread.Sleep(1000) 或 Do Until Me.WebBrowser1.ReadyState = WebBrowserReadyState.Complete Application.DoEvents() Loop 似乎都没有帮助,我的标签是空的,没有填充
-
如果此问题与您当前的问题直接相关,请对其进行编辑并添加问题的详细信息。如果没有,请提出另一个问题。
标签: javascript jquery .net vba