zoukankan      html  css  js  c++  java
  • C# webBrowser 模拟登陆填充操作等(写网页注册机之类的时候要用到)

    C# ,webBrowser,登录,数据填充,模拟点击链接,运行JS函数,检测网页是否载入完成

    判断是否网络正常

    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();
    }

    原理很简单,在webBrowser1的DocumentCompleted事件中判断一下当前完成的url地址,如果当前完成url和当初要打开的url相等,就确定当前网页已经加载完成

    //string strURL 要找开的页面的URL
    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
    if (e.Url.ToString().Trim() == strURL.Trim())
    {
    //已经加载完成
    }
    }

    控制流动条

    webBrowser1.Document.Window.ScrollTo(100, 100);//滚动到你要的坐标,以像素为单位

    转载自互联网!

    作者:BuildNewApp
    出处:http://syxchina.cnblogs.comBuildNewApp.com
    本文版权归作者、博客园和百度空间共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则作者会诅咒你的。
    如果您阅读了我的文章并觉得有价值请点击此处,谢谢您的肯定1。
  • 相关阅读:
    (转)C3P0连接池配置和实现详解
    (转)jquery插件Validate的使用
    二叉树和翻转二叉树
    利用@media screen实现网页布局的自适应
    (转)防止SQL注入的五种方法
    java代码规范
    Java泛型-类型擦除
    js中的isNaN()
    (转)sublime 一些常用功能和快捷键
    (转)java中不常见的关键字:strictfp,transient
  • 原文地址:https://www.cnblogs.com/syxchina/p/2197316.html
Copyright © 2011-2022 走看看