如何在代码中模拟网页按钮单击

时间:2013-01-16 17:58:00

标签: c# .net button onclick simulate

我正在尝试模拟程序中的按钮单击以获取服务器的响应。问题是网页“onclick”激活该页面中的脚本

html看起来像这样:

<script language=javascript>
    function frmsubmit(id)
    {
        document.all("HistoryData1_hiddenID").value=id;
        document.all("Form1").submit();  
    }
</script>
<input type="button" id="btnGo" value="Go" Class="RegularButton" onclick="frmsubmit('0')" >

我使用了以下代码:

WebBrowser wb = new WebBrowser();
wb.Navigate(url);
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
    Application.DoEvents();
}
wb.Document.GetElementById("btnGo").InvokeMember("click");

什么都没发生。在真实的网页中,我得到了一个包含我需要的数据的HTML。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

你可以使用像

这样的jquery
$("#btnGo").click();

在你的.cs中,你会像

一样使用它
StringBuilder sb = new StringBuilder();
sb.AppendLine("$(document).ready(function() {");
sb.AppendLine("$('#btnGo').click();");
sb.AppendLine(" });");
Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", sb.ToString(), true);

就是这样,当然你必须将jquery库添加到html页面

答案 1 :(得分:0)

尝试调用doPostBack

__doPostBack("btnGo', '<event argument here>');

http://wiki.asp.net/page.aspx/1082/dopostback-function/

答案 2 :(得分:0)

使用jQuery trigger()函数(或triggerHandler,具体取决于您的目的)。 即。

$('#<%=btnGo.ClientID%>').trigger('click');