1

Webサイトからデータを抽出しようとしていますが、送信ボタンはドキュメント完了イベントで初めて呼び出されます。最初に送信されたページのドキュメント完了イベントを読み込んだ後、コードが実行されません。

 private void b_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser b = sender as WebBrowser;
        string response = "";
        response = b.DocumentText;
        HtmlElement links = b.Document.GetElementById("btn1");
        links.InvokeMember("click");
        checkTrafiicButtonClick = true;
        MessageBox.Show("");
        ***// upto these working and loading second page after that i want to fill data   
           and want to submit but down line is not working and it should be work after    
           loading the page that i submitted how can i do these***

        HtmlElement tfrno = b.Document.GetElementById("TrfNo");
        tfrno.SetAttribute("value", "50012079");
        HtmlElement submitButon = b.Document.GetElementById("submitBttn");
        submitButon.InvokeMember("click");

    }
4

1 に答える 1

1

コメントに基づいて、コードは期待どおりに機能しません。最初のクリック後、webbroserは非同期ページの読み込みを開始します。次のことを行う必要があります。

private void b_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser b = sender as WebBrowser;
     if(b.Url.AbsoluteUri == "mydomain.com/page1.html")
     {
        string response = "";
        response = b.DocumentText;
        HtmlElement links = b.Document.GetElementById("btn1");
        links.InvokeMember("click");
        checkTrafiicButtonClick = true;
        MessageBox.Show("");
        return;
     }
        ***// upto these working and loading second page after that i want to fill data   
           and want to submit but down line is not working and it should be work after    
           loading the page that i submitted how can i do these***
     if(b.Url.AbsoluteUri == "mydomain.com//page2.htm")
     {
        HtmlElement tfrno = b.Document.GetElementById("TrfNo");
        tfrno.SetAttribute("value", "50012079");
        HtmlElement submitButon = b.Document.GetElementById("submitBttn");
        submitButon.InvokeMember("click");
        return;
     }
    }

また、ページの一部は、たとえば、などの別のソースからロードできるため、iframe適切にチェックする必要があることに注意してください。uri

于 2013-02-13T12:35:28.807 に答える