C#中的WebBrowser控件的使用
关键字:C# WebBrowser
作者:txw1958
原文:http://www.cnblogs.com/txw1958/archive/2012/09/24/CSharp-WebBrowser.html
0、常用方法
Navigate(stringurlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(string urlString, string targetFrameName, byte[] postData, stringadditionalHeaders): 浏览urlString表示的网址,并发送postData中的消息//(通常我们登录一个网站的时候就会把用户名和密码作为postData发送出去) GoBack():后退 GoForward():前进 Refresh():刷新 Stop():停止 GoHome():浏览主页 WebBrowser控件的常用属性: Document:获取当前正在浏览的文档 DocumentTitle:获取当前正在浏览的网页标题 StatusText:获取当前状态栏的文本 Url:获取当前正在浏览的网址的Uri ReadyState:获取浏览的状态 WebBrowser控件的常用事件: DocumentTitleChanged, CanGoBackChanged, CanGoForwardChanged, DocumentTitleChanged, ProgressChanged, ProgressChanged
1、获取非input控件的值:
webBrowser1.Document.All["控件ID"].InnerText; 或webBrowser1.Document.GetElementById("控件ID").InnerText; 或webBrowser1.Document.GetElementById("控件ID").GetAttribute("value");
2、获取input控件的值:
webBrowser1.Document.All["控件ID"].GetAttribute("value");; 或webBrowser1.Document.GetElementById("控件ID").GetAttribute("value");
3、给输入框赋值:
//输入框 user.InnerText = "myname"; password.InnerText= "123456"; webBrowser1.Document.GetElementById("password").SetAttribute("value", "Welcome123");
4、下拉、复选、多选:
//下拉框: secret.SetAttribute("value", "question1");//复选框 rememberme.SetAttribute("Checked", "True");//多选框 cookietime.SetAttribute("checked", "checked");
5、根据已知有ID的元素操作没有ID的元素:
HtmlElement btnDelete = webBrowser1.Document.GetElementById(passengerId).Parent.Parent.Parent.Parent.FirstChild.FirstChild.Children[1].FirstChild.FirstChild;
根据Parent,FirstChild,Children[1]数组,多少层级的元素都能找到。
6、获取Div或其他元素的样式:
webBrowser1.Document.GetElementById("addDiv").Style;
7、直接执行页面中的脚本函数,带动态参数或不带参数都行:
Object[] objArray = new Object[1]; objArray[0] = (Object)this.labFlightNumber.Text; webBrowser1.Document.InvokeScript("ticketbook", objArray); webBrowser1.Document.InvokeScript("return false");
8、自动点击、自动提交:
HtmlElement btnAdd = doc.GetElementById("addDiv").FirstChild; btnAdd.InvokeMember("Click");
9、自动赋值,然后点击提交按钮的时候如果出现脚本错误或一直加载的问题,一般都是点击事件执行过快,这时需要借助Timer控件延迟执行提交按钮事件:
this.timer1.Enabled = true;this.timer1.Interval = 1000 * 2;private void timer1_Tick(objectsender, EventArgs e) {this.timer1.Enabled = false;ClickBtn.InvokeMember("Click");//执行按扭操作 }
10、屏蔽脚本错误:
将WebBrowser控件ScriptErrorsSuppressed设置为True即可
11、自动点击弹出提示框:
private void webBrowser1_Navigated(objectsender, WebBrowserNavigatedEventArgs e) {//自动点击弹出确认或弹出提示IHTMLDocument2 vDocument =(IHTMLDocument2)webBrowser1.Document.DomDocument;vDocument.parentWindow.execScript("function confirm(str){return true;}", "javascript"); //弹出确认vDocument.parentWindow.execScript("function alert(str){return true;}", "javaScript");//弹出提示 }
WebBrowser页面加载完毕之后,在页面中进行一些自动化操作的时候弹出框的自动点击(屏蔽)
private void webBrowser1_DocumentCompleted(objectsender, WebBrowserDocumentCompletedEventArgs e) {//自动点击弹出确认或弹出提示IHTMLDocument2 vDocument =(IHTMLDocument2)webBrowser1.Document.DomDocument;vDocument.parentWindow.execScript("function confirm(str){return true;}", "javascript"); //弹出确认vDocument.parentWindow.execScript("function alert(str){return true;}", "javaScript");//弹出提示//下面是你的执行操作代码 }
12、获取网页中的Iframe,并设置Iframe的src
HtmlDocument docFrame = webBrowser1.Document.Window.Frames["mainFrame"].Document; 或 HtmlDocument docFrame= webBrowser1.Document.All.Frames["mainFrame"].Document; docFrame.All["mainFrame"].SetAttribute("src", "http://www.baidu.com/");
13、网页中存在Iframe的时候webBrowser1.Url和webBrowser1_DocumentCompleted中的e.Url不一样,前者是主框架的Url,后者是当前活动框口的Url。
14、让控件聚焦
this.webBrowser1.Select();this.webBrowser1.Focus(); doc.All["TPL_password_1"].Focus();
15、打开本地网页文件
webBrowser1.Navigate(Application.StartupPath + @"\Test.html");
16、获取元素、表单
//根据Name获取元素 public HtmlElement GetElement_Name(WebBrowser wb,stringName) {HtmlElement e=wb.Document.All[Name];returne; }//根据Id获取元素 public HtmlElement GetElement_Id(WebBrowser wb, stringid) {HtmlElement e=wb.Document.GetElementById(id);returne; }//根据Index获取元素 public HtmlElement GetElement_Index(WebBrowser wb,intindex) {HtmlElement e=wb.Document.All[index];returne; }//获取form表单名name,返回表单 public HtmlElement GetElement_Form(WebBrowser wb,stringform_name) {HtmlElement e=wb.Document.Forms[form_name];returne; }//设置元素value属性的值 public void Write_value(HtmlElement e,stringvalue) {e.SetAttribute("value", value); }//执行元素的方法,如:click,submit(需Form表单名)等 public void Btn_click(HtmlElement e,strings) {e.InvokeMember(s); }
转载于:https://www.cnblogs.com/lanzhi/p/6468119.html
C#中的WebBrowser控件的使用相关推荐
- C# webbrowser控件点击页面按钮
用金山快盘时需要每天签到挣空间容量,一直都想写个定时程序实现,然后挂到实验室的服务器上.通过参考网上一些资料,自己动手实现一个利用webbrowser控件实现了自动点击网页按钮的功能,其实很简单的,下 ...
- 控制 WebBrowser 控件的外观和行为
控制 WebBrowser 控件的外观和行为 2011-03-23 09:33 在 CSDN 上经常看到以下两个问题: 1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 C ...
- 解决WebBrowser控件会导致应用程序占用内存居高不下问题
WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增.WebBrowser 类使用户可以在窗体中导航网页,下面我们来看在开发中碰到WebBrowser控件 ...
- 更改WebBrowser控件的用户代理
我试图在Winforms应用程序中更改WebBrowser控件的UserAgent. 我已成功使用以下代码实现此目的: [DllImport("urlmon.dll", CharS ...
- WebBrowser控件使用相关
修改WebBrowser控件的内核解决方案 http://www.cnblogs.com/sung/p/3391264.html C#中的WebBrowser控件的使用 http://www.cnbl ...
- 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容
第一次在CNBlogs上发Post是提出一个有关使用WebBrowser控件时对SELECT网页元素操作的疑惑,这个问题至今也没有解决,后来有朋友在该Post的评论里询问WebBrowser控件如何在 ...
- pb调用计算机默认游览器,PB打开ole控件IE浏览器版本问题_指定Webbrowser控件所用IE内核版本(转)...
如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe 对于32位 ...
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. 发现WebBrowser控件默认使用的版本是IE7的兼容模式.而淘宝的宝贝详细页居然对IE7的支持不是很好. 成交记 ...
- c#中WebBrowser控件的使用方法
首先先来简单介绍一下webbrowser控件,这个控件是可以实现在form窗体中添加网页内容的.如图,我在form中加入了百度api,(百度地图api调用博客里有讲) 使用这个控件其实很简单 (1)第 ...
最新文章
- 矩阵的终极分解-奇异值分解 SVD
- Configuring the Java Virtual Manager (JVM)
- https://blog.csdn.net/weixin_40412037/article/details/112235003
- android 无线视频,Android系统无线视频流媒体的接收、解码与播放
- [NOI2007]社交网络
- 微信查询订单API与商派ecstore订单状态对接
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题...
- 素数在c语言中怎么表示,请问素数怎么样表示
- rk3399 io工具的使用示例
- shell脚本如何显示所执行的每一条命令
- Tomcat的工作模式
- 项目日报模板_能力再强也要常向领导汇报工作,掌握万能模板,不做职场小透明...
- angular 万年历_angularjs日期选择插件
- MATLAB牛拉法计算潮流,Matlab牛拉法潮流计算程序
- 国内比较好的云服务提供商有哪些?
- vob文件如何转换成mp4
- Windows电脑无法识别msi文件,无法安装msi文件解决办法
- 喜讯 | 哈特公寓荣誉获最佳新锐公寓奖
- SpringBoot中SpringSecurity+JWT的使用
- Smallpdf 轻松玩转PDF。我们爱它。
热门文章
- 学习笔记之-MySql高级之sql优化
- 【SQL】表A多个字段,关联表B一个字段说明
- day34 并行并发、进程开启、僵尸及孤儿进程
- 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的
- 设计模式:策略模式(Strategy)
- C#可空类型(Nullable Types)
- [置顶]IFTTT与Google+是什么?ifttt怎么玩?
- [原创]Flex文本框自动提示(AutoSuggest)、自动完成(AutoComplete)
- System.IO 的三个抽象类
- python中的re模块和正则表达式基础