最近使用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方法

}

}

}

WebBrowser网页操作之提取获取元素和标签(完整篇)的更多相关文章

  1. webBrowser中操作网页元素全攻略

    原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBr ...

  2. 常用数组、字符串方法总结&获取元素、DOM操作

    字符串的方法.返回值.是否改变原字符串:1 charAt() 方法可返回指定位置的字符. 不改变原始字符串 JavaScript并没有一种有别于字符串类型的字符数据类型,返回的字符是长度为 1 的字符 ...

  3. 从零开始学 Web 之 DOM(二)对样式的操作,获取元素的方式

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  4. selenium常用命令--操作页面元素及获取元素内容整理

    selenium常用命令之操作页面元素及获取元素内容的事件整理 例子:  /**id <input type="text" id="phone" name ...

  5. selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码

    目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...

  6. selenium常用命令之操作页面元素及获取元素内容的事件整理

    /**id <input type="text" id="phone" name="phone" class="LoginT ...

  7. 通过ID获取元素 注:获取的元素是一个对象,如想对元素进行操作,我们要通过它的属性或方法。

    通过ID获取元素 学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人.那么在网页中,我们通过id ...

  8. javascript根据元素自定义属性获取元素,操作元素

    写在前面:给某个或多个元素自定义属性data-tar,想获取data-tar='123'的元素来进行进一步的操作,如何实现? function getElementByAttr(tag,attr,va ...

  9. Javascript及Jquery获取元素节点以及添加和删除操作

    用了javascript和jquery很久,把所有元素节点的操作总结了下,放在博客上作为记录. Javascript获取元素的主要方式有三种 1.document.getElementById('ma ...

随机推荐

  1. Super超级ERP系统---(1)总体设计

       1.概述 随着互联网的发展,尤其是电子商务的发展,信息化系统越来显得越重要.在互联网飞速发展的今天,各种网站,软件系统应用而生,特别是随着近几年电子商务的发展,很多企业慢慢开始做大,管理方面暴露 ...

  2. weborm aspx开发基础

    ASP.NET - .net开发网站应用程序的技术总称,来源于 ASP 两种方法技术—WebForm: MVC:java用 十二个表单元素: 文本框<input type="text& ...

  3. SVG剪裁路径和遮罩jQuery幻灯片

    SVG剪裁路径和遮罩jQuery幻灯片是一款基于SVG clipPath和mask遮罩元素实现的网站动画幻灯片代码特效. 在线演示本地下载

  4. 使用Custom scrollbar(彩色滚动条)插件实现WordPress滚动条变色的方法

    1.在插件中心关键词搜索Custom scrollbar 2.按照说明操作就行 查看演示:sheji.xinlvtian.com

  5. 部署Seafile服务

    介绍 官网:https://www.seafile.com 客户端/服务端下载:https://www.seafile.com/download/ 中文安装教程(MySQL版):http://manu ...

  6. 【Five-Minute Share】“为什么要选择自增型的主键”

    我们在开发的时候经常会听到这样的建议:1. 设计数据库表的时候,要为每个表设置一个主键:2. 主键最好是跟业务无关的: 3. 最好是自增的: 于是,很多新入行的程序猿们把这些前辈们的教条拿来就用,每个 ...

  7. ES5:深入解析如何js定义类或对象。

    1.原始方式 var oCar = new  Object; oCar.color = "blue"; oCar.showColor = function(){alert(this ...

  8. 04--深入探讨C++中的引用

    深入探讨C++中的引用           引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确.灵活地使用引用,可以使程序简洁.高效.我在工作中发现,许多人使用它仅仅是想当然,在某些微 ...

  9. BZOJ 1726: [Usaco2006 Nov]Roadblocks第二短路 Dijkstra

    Description 贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样, ...

  10. 记一次vip视频破解过程(爱奇艺 芒果 腾讯 优酷 )

    1. 在爱奇艺或者优酷中拿到视频的url地址.此时拿到的是加密地址(也可以直接在牛巴巴里面搜名字然后开f12跟踪路由) 2.进入牛巴巴vip视频解析网站.粘贴拿到的url.点击解析 3.f12在net ...