1,引用mshtml.dll

using mshtml;

2,获取元素属性值

IHTMLDocument2 doc2=(IHTMLDocument)webbrowser1.Document;
IHTMLElement img=(IHTMLElement)doc2.all.item("regimg",0);
string imgUrl=(string)img.getAttribute("src");

3,取表单控件

IHTMLElement loginName=(IHTMLElement)doc2.all.item("loginname",0);
IHTMLElement loginPW=(IHTMLElement)doc2.all.item("password",0);
IHTMLElement loingYZM=(IHTMLElement)doc2.all.item("regcode",0);
IHTMLElement loginBT=(IHTMLElement)doc2.all.item("formsubmit",0);

4,填写表单控件

loginName.setAttribute("value",tbLoginName.Text);
loginPW.setAttribute("value",tbLoginPassWord.Password);
loginYZM.setAttribute("value",tbYZ.Text);

5,点击按钮

loginBT.click();

6,执行js脚本

方法1:

IHTMLwindow win=(IHTMLWindow2)doc2.parentWindows;
win.execScript("alert('hello!')","javascript");

方法2:

webbrowser1.InvokeScript("eval","alert('hello!')");

7,屏蔽alert、confirm等,通过重定义实现

private voie webbrowser1_navigated(object sender,WebBroserNavigatedEventArgs e)
{
IHTMLWindow2 win=(IHTMLWindow2)webbrowser1.Document.Window.DomWindow;
string s=@"window.alert=null; window.onerror=null;window.confirm=null; windows.open=null; window.showModalDialg=null;";
win.execScript(s,"javascript");
}

8,接收js消息

[ComVisible(true)]  //这句要加到类定义前,可与COM通信

private void webbrowser1_Navigated(objec sender,WebBrowserNavigatedEventargs e)
{
IHTMLWindow2 win=(IHTMLWindow2)webbrowser1.Document.Window.DomWindow;
//假设把alert消息传出来处理
string s=@"function alert(str){window.external.procMessage(str);}";
win.execScript(s,"javascript");
webbrowser1.ObjectForScripting=this; //指定脚本消息送到当前实例处理
} //处理脚本消息的方法
public void procMessage(string s)
{
MessageBox.Show("脚本消息:"+s);
}

WPF使用Webbrowser操作网页的主要代码的更多相关文章

  1. .NET4.5 WFP中用WebBrowser获取/操作网页html代码

    引言 想给自己之前写的网页小说爬虫程序更新换代,之前一直是用winform的形式写的程序,因此这一次更新打算把UI换成WPF(因为听说WPF很漂亮),顺便也以此引入WPF的学习. 那么作为网页爬虫程序 ...

  2. 模拟操作网页 webBrowser

    C# 获取IFrame中body元素 (winform) 方法1. 找出iframe的b.html的src , 利用webbrowser去加载b.html HtmlElementCollection ...

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

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

  4. WinForm使用WebBrowser操作HTML页面的Element

    前言 在 Window Form 应用程序如果需要浏览网页时可以崁入 WebBrowser 控件,但如果需要操作崁入的 HTML 的网页元素,就需要额外的操作,以下纪录几种操作 HTML 元素的方法以 ...

  5. 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件

    原文:[WPF]监听WPF的WebBrowser控件弹出新窗口的事件 WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗 ...

  6. HttpWebRequest post 提交 C#的WebBrowser操作frame如此简单 WebClient 提交

    //http://www.cnblogs.com/cgli/archive/2011/04/09/2010497.html System.Net.ServicePointManager.Expect1 ...

  7. C# 网络编程之webBrowser获取网页url和下载网页中图片

    该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试瞎子啊网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识.正则表达式实现浏览.获取url. ...

  8. C#的WebBrowser操作frame

    刚学c#不久,也不太懂什么IHTMLDocument.IHTMLDocument2.IWebBrowser2等等.自己琢磨了好久,终于知道了怎么用WebBrowser操作frame和iframe. 1 ...

  9. 在WPF程序中打开网页:使用代理服务器并可进行JS交互

    本项目环境:使用VS2010(C#)编写的WPF程序,通过CefSharp在程序的窗体中打开网页.需要能够实现网页后台JS代码中调用的方法,从网页接收数据,并能返回数据给网页.运行程序的电脑不允许上网 ...

随机推荐

  1. K好数

    有点坑 在他这里 0不算一位数 #include <iostream> #include <cstdio> #include <string.h> using na ...

  2. linux服务器---安装swat

    安装swat swat是一个图形化的samba管理软件,可以帮助不熟悉的人去灵活的配置samba服务, 1.安装swat [root@localhost wj]#yum install -y samb ...

  3. schema与catalog的理解

    sql环境中Catalog和Schema都属于抽象概念,主要用来解决命名冲突问题.一个数据库系统包含多个Catalog,每个Catalog包含多个Schema,每个Schema包含多个数据库对象(表. ...

  4. 如何加固linux NFS 服务安全的方法

    NFS(Network File System)是 FreeBSD 支持的一种文件系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源.不正确的配置和使用 NFS,会带来安全问题. 概述 N ...

  5. echart知识点、常用图形

    原文地址:https://www.cnblogs.com/kewenxin/p/9338272.html 本文是自己在项目中需要运用到的echarts图形进行整理,都有完整的代码.echarts原型, ...

  6. CentOS 7下搭建配置SVN服务器

    CentOS 7下搭建配置SVN服务器 1. 安装 CentOS通过yum安装subversion. $ sudo yum install subversion subversion安装在/bin目录 ...

  7. 三步搞定 opencv 初始环境设定

    一.设定bin的初始位置:比如我的电脑 D:\安装程序\opencv\build\x86\vc10\bin      H:\生产力工具\opencv\build\x86\vc10\bin D:\安装程 ...

  8. 20165310java_blog_week6

    2165310 <Java程序设计>第6周学习总结 教材学习内容总结 String 构造 String str=new String() String (char a[]) String ...

  9. Delphi XE5 for Android (四)

    在Delphi中窗体与窗体之间的交互与调用非常简单,在FMX中这个优势得到了充分体现,先建立一个主窗体和一个需要调用的窗体:       在主窗体上放的按钮事件如下: - private   { Pr ...

  10. python中的迭代器和生成器学习笔记总结

    生成器就是一个在行为上和迭代器非常类似的对象.   是个对象! 迭代,顾名思意就是不停的代换的意思,迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果.每一次对过程的重复称为一次“迭代”,而 ...