WPF使用Webbrowser操作网页的主要代码
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操作网页的主要代码的更多相关文章
- .NET4.5 WFP中用WebBrowser获取/操作网页html代码
引言 想给自己之前写的网页小说爬虫程序更新换代,之前一直是用winform的形式写的程序,因此这一次更新打算把UI换成WPF(因为听说WPF很漂亮),顺便也以此引入WPF的学习. 那么作为网页爬虫程序 ...
- 模拟操作网页 webBrowser
C# 获取IFrame中body元素 (winform) 方法1. 找出iframe的b.html的src , 利用webbrowser去加载b.html HtmlElementCollection ...
- webBrowser中操作网页元素全攻略
原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBr ...
- WinForm使用WebBrowser操作HTML页面的Element
前言 在 Window Form 应用程序如果需要浏览网页时可以崁入 WebBrowser 控件,但如果需要操作崁入的 HTML 的网页元素,就需要额外的操作,以下纪录几种操作 HTML 元素的方法以 ...
- 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件
原文:[WPF]监听WPF的WebBrowser控件弹出新窗口的事件 WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗 ...
- HttpWebRequest post 提交 C#的WebBrowser操作frame如此简单 WebClient 提交
//http://www.cnblogs.com/cgli/archive/2011/04/09/2010497.html System.Net.ServicePointManager.Expect1 ...
- C# 网络编程之webBrowser获取网页url和下载网页中图片
该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试瞎子啊网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识.正则表达式实现浏览.获取url. ...
- C#的WebBrowser操作frame
刚学c#不久,也不太懂什么IHTMLDocument.IHTMLDocument2.IWebBrowser2等等.自己琢磨了好久,终于知道了怎么用WebBrowser操作frame和iframe. 1 ...
- 在WPF程序中打开网页:使用代理服务器并可进行JS交互
本项目环境:使用VS2010(C#)编写的WPF程序,通过CefSharp在程序的窗体中打开网页.需要能够实现网页后台JS代码中调用的方法,从网页接收数据,并能返回数据给网页.运行程序的电脑不允许上网 ...
随机推荐
- 主成分分析(PCA)学习笔记
这两天学习了吴恩达老师机器学习中的主成分分析法(Principal Component Analysis, PCA),PCA是一种常用的降维方法.这里对PCA算法做一个小笔记,并利用python完成对 ...
- Python: attrgetter()函数: 排序不支持原生比较的对象
问题: 想排序类型相同的对象,但是他们不支持原生的比较操作. answer: 内置的sorted()函数有一个关键字参数key,可传入一个callable对象给它 这个callabel对象对每个传入的 ...
- IOS中position:fixed吸底时的滑动出现抖动的解决方案
H5方法: //吸顶头部 .header{ width:100%; height:50px; position:fixed; top:0px; } //main滑动区域 .main{ width:10 ...
- 2018-2019-2 20165209 《网络对抗技术》Exp5:MSF基础应用
2018-2019-2 20165209 <网络对抗技术>Exp5:MSF基础应用 目录 一.基础问题回答和实验内容 二.攻击实例 主动攻击的实践 ms08_067 payload/gen ...
- python中的对象(三)
一.python对象 python使用对象模型来存储数据.构造任何类型的值都是一个对象. 所有python对象都拥有三个特性:身份.类型.值 身份:每个对象都有一个唯一的身份标识自己,任何对象的身份可 ...
- 利用arcgis处理遥感栅格数据,得到省平均值数据
1.准备全国省级行政区数据,需要有省级行政区信息,如下所示: 2.生成渔网数据,操作完成会生成一个面数据和一个点数据,我们主要用点数据进行后面的操作. 3.提取栅格数据的值到渔网点数据中. 4.将区域 ...
- Python3.x(windows系统)安装libxml2库
Python3.x(windows系统)安装libxml2库 cmd安装命令: pip install lxml 执行结果: 再执行命令: pip install virtualenv 执行结果:
- Js/html格式化在线工具
Js/html格式化在线工具 Js/html格式化在线工具:http://tool.chinaz.com/Tools/jsformat.aspx
- poj 1274 The Prefect Stall - 二分匹配
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22736 Accepted: 10144 Description Far ...
- 【转】iOS学习之iOS禁止Touch事件
iOS程序中有时会有需要禁止应用接收Touch的要求(比如动画进行时,防止触摸事件触发新方法). 一.一般有两种: 1.弄个遮罩层,禁止交互: 2.使用UIApplication中的方法进行相关的交互 ...