我正在尝试模拟程序中的按钮单击以获取服务器的响应。问题是网页“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。有什么想法吗?
答案 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>');
答案 2 :(得分:0)
使用jQuery trigger()函数(或triggerHandler,具体取决于您的目的)。 即。
$('#<%=btnGo.ClientID%>').trigger('click');