0

サーバーからの応答を取得するために、プログラムでボタンのクリックをシミュレートしようとしています。問題は、Web ページの「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");

何も起こりません。実際の Web ページでは、必要なデータを含む html を取得します。何か案は?

4

3 に答える 3

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 ページに追加する必要があります。

于 2013-01-16T18:03:26.420 に答える
0

doPostBack を呼び出してみてください

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

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

于 2013-01-16T17:59:51.717 に答える
0

jQueryのtrigger()関数 (または目的に応じてtriggerHandler ) を使用します。いえ

$('#<%=btnGo.ClientID%>').trigger('click');
于 2013-01-16T18:04:42.043 に答える