C# ,webBrowser,登录,数据填充,模拟点击链接,运行JS函数

来源:互联网 发布:玻璃尺寸计算软件 编辑:程序博客网 时间:2021/04/12 14:17

公司BOSS

要求我开发一个能自动登录,上传数据的软件,对我这个C/S盲来说,无疑是挖了个大坑,要我往下跳吗.

黑暗啊...

为了生存,就算是毁我容,我也是愿意的,,

CSDN-àGOOGLEàBAIDUàYAHOO

!!!

二天了都没什么到一个好结果,好不容易找到一段自动登录的代码,

看看...

开工了,再不开工,估计这个月的薪水就要8折了

一个星期后,竟然成了

开心,分享一下,虽然不是什么惊天大作,也算给有和我这样急需朋友一用吧

 

网站www.ic2ic.com(这个网站是一个电子元件发布平台,免费的)

实现功能 第一次人工登录,自定义上传时间,周期上传数据(刷新自己的产品,让产品排的更高位)

 

判断是否网络正常  
private  bool IsConnectedToInternet()
        
{
            
int Desc;
            
return internet.InternetGetConnectedState(out  Desc, 0);
        }
   
设置默认页面:
webBrowser1.Navigate(
new Uri("http://www.ic2ic.com/copy.jsp"));
登录代码:
      
private void btnlogin_Click(object sender, EventArgs e)
        
{
            webBrowser1.Document.GetElementById(
"id").InnerText =txtuser.Text.ToString().Trim();//fill name
            webBrowser1.Document.GetElementById("passwd").InnerText =txtpwd.Text.ToString().Trim();//fill pwd
            HtmlElement formLogin = webBrowser1.Document.Forms["frmLogin"];
         
            formLogin.InvokeMember(
"submit");
            Thread.Sleep(
5000);
            herfclick(
"http://www.ic2ic.com/upload.jsp");//这是登录成功的操作,跳转到//upload.asp
                                                         
//注意不是直接跳过去的,模拟点击链接
                                                         
//SESSION不会丢失
            herfclick("http://www.ic2ic.com/copy.jsp"); 
        }


模拟点击链接:
   
private void herfclick(string url)
        
{
            
for (int i = 0; i < webBrowser1.Document.All.Count; i++)
            
{
                
if (webBrowser1.Document.All[i].TagName == "A" && webBrowser1.Document.All[i].GetAttribute("href").ToString().Trim() ==url)
                
{
                    webBrowser1.Document.All[i].InvokeMember(
"click");//引发”CLICK”事件
                    break;
                }

            }

            
        }

运行网页中的JS函数
    
private void callJsMethod(string jsfun,string jsParameter)//函数名字,函数参数
        {
            HtmlDocument doc 
= webBrowser1.Document;
            doc.InvokeScript(jsfun,
new object[]{jsParameter});
        }

填充数据:
  
private void filldate(string txt)
        
{
            HtmlElement frmWord 
= webBrowser1.Document.Forms["frmWord"];//找到from
            HtmlElementCollection txtarea = frmWord.GetElementsByTagName("TEXTAREA");
            HtmlElementCollection radio 
= frmWord.GetElementsByTagName("INPUT");
            radio[
2].InvokeMember("click");//选择radio控件
            txtarea[0].InnerText = txt.ToString();
        }