none
C#webBrowser1_DocumentCompleted里的怎么控制每项填表时间?直接用Thread.Sleep(3000);不起作用! RRS feed

  • 问题

  •  

    C#webBrowser1_DocumentCompleted里的怎么控制每项填表时间?直接用Thread.Sleep(3000);不起作用!

    找了些线程的异步 处理还是不会弄,如果webbrowser一个页面里要模拟手工很多元素,怎么控制每个填写每个元素的时间?

    用Thread.Sleep(3000)不结果去先执行了线程的等待时间过后一下子所有的表单还是一起填写了。

    下面只是列举的一个登录百度的例子,使用了一个按钮 button和 一个webBrowser控件!

    ======================================

            string reg_url = "https://passport.baidu.com/?login&tpl=mn";//填表地址
            private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                if (e.Url == webBrowser1.Document.Url&&e.Url.ToString()==reg_url)//网页加载网且加载地址为填表地址
                {
                    webBrowser1.Document.GetElementById("username").SetAttribute("value", "user456"); //填写用户名 
                    Thread.Sleep(3000);
                    webBrowser1.Document.GetElementById("normModPsp").SetAttribute("value", "pwd123456");//填写密码
                    Thread.Sleep(3000);
     
                }
            }


            private void button1_Click(object sender, EventArgs e)//开始填表
            {
                webBrowser1.Navigate(reg_url);

            }

     



    2011年7月21日 9:36

答案

  • 1.首先,不应该在webBrowser1_DocumentCompleted事件里面进行判断,

        webBrowser1_DocumentCompleted是在网页加载完成后执行的,和你输入用户名,密码的事件无关

    2.控制用户名和密码是输入时间,你要通过JS控制,你可以通过webbrower向网页中添加一段js脚本,来进行时间控制


    http://blog.csdn.net/zx13525079024
    2011年7月22日 3:09
  • dear

    你必须要懂得如何写Java Script功能,再由C#呼叫这各功能,有两种方式呼叫,一种是写成.js、另一种是写在C#里

    http://www.cnblogs.com/onlytiancai/archive/2008/10/14/1310974.html

    http://www.daniweb.com/software-development/csharp/threads/60412


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年7月22日 15:50

全部回复

  • 求大家帮忙看下!先谢谢回帖的
    2011年7月22日 0:26
  • 1.首先,不应该在webBrowser1_DocumentCompleted事件里面进行判断,

        webBrowser1_DocumentCompleted是在网页加载完成后执行的,和你输入用户名,密码的事件无关

    2.控制用户名和密码是输入时间,你要通过JS控制,你可以通过webbrower向网页中添加一段js脚本,来进行时间控制


    http://blog.csdn.net/zx13525079024
    2011年7月22日 3:09
  • 可以把操作放到timer,根据全局变量判断做第几步


    http://feiyun0112.cnblogs.com/
    2011年7月22日 9:35
    版主
  • 具体怎么操作?恳求解决方法!
    2011年7月22日 12:11
  • 先谢谢大侠的回帖,看你帮过很多朋友~~

    1、如果不应该在webBrowser1_DocumentCompleted事件里面进行判断,那怎么判断 网页是否加载完毕?

    2、用js控制,具体怎么解决?

    2011年7月22日 12:16
  • dear

    你必须要懂得如何写Java Script功能,再由C#呼叫这各功能,有两种方式呼叫,一种是写成.js、另一种是写在C#里

    http://www.cnblogs.com/onlytiancai/archive/2008/10/14/1310974.html

    http://www.daniweb.com/software-development/csharp/threads/60412


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年7月22日 15:50