【C#】[网络]WebBrowser网页操作之提取获取元素和标签(完整篇)

在此基础上加强

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;//

 

namespace WebBrowser网页操作

{

    public class Element

    {

 

       //根据Name获取元素

       public HtmlElement GetElement_Name(WebBrowser wb,string Name)

       {

          HtmlElement e = wb.Document.All[Name];

           return e;

       }

 

       //根据Id获取元素

       public HtmlElement GetElement_Id(WebBrowser wb, string id)

       {

          HtmlElement e = wb.document.getElementByIdx(id);

           return e;

       }

 

       //根据Index获取元素

       public HtmlElement GetElement_Index(WebBrowser wb,int index)

       {

          HtmlElement e = wb.Document.All[index];

           return e;          

       }

 

   // 据Type获取元 ,在没有NAME和ID的情况下使用
   public HtmlElement GetElement_Type(WebBrowser wb,string type)
    {
        HtmlElement e=null;
        HtmlElementCollection elements = wb.Document.getElementsByTagName_r("input");
        foreach (HtmlElement element in elements)
        {
            if (element.GetAttribute("type") == type)
            {
                e = element;
            }
        }
        return e;
    }
// 据Type获取元 ,在没有NAME和ID的情况下使用,并指定是同类type的第 个,GetElement_Type()升级版
   public HtmlElement GetElement_Type_No(WebBrowser wb,string type,int i )
    {
int j=1;
        HtmlElement e=null;
        HtmlElementCollection elements = wb.Document.getElementsByTagName_r("input");
        foreach (HtmlElement element in elements)
        {
            if (element.GetAttribute("type") == type)
            {
                if(j==i)
{
e = element;
}
j++;
            }
        }
        return e;
    }

       //获取form表单名name,返回表单

       public HtmlElement GetElement_Form(WebBrowser wb,string form_name)

       {

          HtmlElement e = wb.Document.Forms[form_name];

           return e;

       }

 

 

       //设置元素value属性的值

       public void Write_value(HtmlElement e,string value)

       {

          e.SetAttribute("value", value);

       }

        

      //执行元素的方法,如:click,submit(需Form表单名)等

       public void Btn_click(HtmlElement e,string s)

       {

 

          e.InvokeMember(s); 

       }

 

    }

}

这是调用这个类的窗体代码:

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace WebBrowser网页操作

{

    public partial class Form1 : Form

    {

 

       Element el = new Element();

 

       public Form1()

       {

          InitializeComponent();

       }

        

       private void Form1_Load(object sender, EventArgs e)

       {

          webBrowser1.Navigate(Application.StartupPath + @"\Test.html");

       }

 

       private void button1_Click(object sender, EventArgs e)

       {

          el.Write_value(el.GetElement_Name(webBrowser1,"username"),"isaced");

       }

 

       private void button2_Click(object sender, EventArgs e)

       {

          el.Write_value(el.GetElement_Id(webBrowser1, "password"), "123456");

       }

 

       private void button3_Click(object sender, EventArgs e)

       {

          el.Btn_click(el.GetElement_Id(webBrowser1,"button"),"click");//方法用的按钮click

       }

 

       private void button4_Click(object sender, EventArgs e)

       {

          el.Btn_click(el.GetElement_Form(webBrowser1, "form1"), "submit");//先获取表单,再调用表单的submit方法

       }

    }

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值