0

メッセージをサイトに投稿するためのコードをいくつか書きました。ボタンをクリックして実行すると問題なく動作しますが、1 回のショットですべてを実行しようとすると、エラーがスローされます。問題は、すべてを一度に実行しようとすると、WebBrowser がページを完全にロードしていないため、データを投稿できないことです。これが簡単な修正であることはわかっていますが、困惑しています。

private void button1_Start_Click(object sender, EventArgs e)//this is just the Pseudocode
    {



        GetData();

        SendData();//If I eliminate this and just fire the SendData method with a button click, program works fine

    }


    private void GetData()
    {

        webBrowser1.Navigate(inputURLID);
    }



    private void SendData()//if I replace this with  button2_Post_Click it works fine
    {

        webBrowser1.Document.GetElementById("subject").SetAttribute("value", textBox2_Subject.Text);//To (username)

        webBrowser1.Document.GetElementById("message").SetAttribute("value", richTextBox1.Text);//Subject

        webBrowser1.Document.GetElementById("Submit").InvokeMember("click");//Message
    }



    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

    }
4

1 に答える 1

0

SendData()ページがロードされるまで待つ必要がある要素をページがロードしないため、実行できませんcompletely:これを試してください:

 private void button1_Start_Click(object sender, EventArgs e)//this is just the Pseudocode
        {
            GetData();
            button1_Start.Enable = false;
        }

        private void GetData()
        {
            webBrowser1.Navigate("inputURLID");
        }

        private void SendData()
        {
            webBrowser1.Document.GetElementById("subject").SetAttribute("value", textBox2_Subject.Text);//To (username)
            webBrowser1.Document.GetElementById("message").SetAttribute("value", richTextBox1.Text);//Subject
            webBrowser1.Document.GetElementById("Submit").InvokeMember("click");//Message
            button1_Start.Enable = true;
        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            SendData();
        }
于 2013-06-09T14:57:27.180 に答える