zoukankan      html  css  js  c++  java
  • WebBrowser网页操作之提取获取元素和标签(完整篇)

    最近使用WebBrower做了几个Hook小程序,收集积累如下:

    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.GetElementById(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("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("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方法

            }

        }

    }

  • 相关阅读:
    团队作业8----第二次项目冲刺(beta阶段)5.20
    团队作业8——第二次项目冲刺(Beta阶段) 5.19
    团队作业8——Beta项目(冲刺计划)
    团队作业——Alpha冲刺之事后诸葛亮
    团队作业5——测试与发布(Alpha版本)
    团队作业6——展示博客(Alpha版本)
    团队作业4——第一次项目冲刺(Alpha版本)2017.4.28
    团队作业4——第一次项目冲刺(Alpha版本)2017.4.27
    团队作业4——第一次项目冲刺(Alpha版本)2017.4.26
    团队作业4——第一次项目冲刺(Alpha版本)2017.4.25
  • 原文地址:https://www.cnblogs.com/Golf9527/p/4387495.html
Copyright © 2011-2022 走看看