关键字: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控件的使用相关推荐

  1. C# webbrowser控件点击页面按钮

    用金山快盘时需要每天签到挣空间容量,一直都想写个定时程序实现,然后挂到实验室的服务器上.通过参考网上一些资料,自己动手实现一个利用webbrowser控件实现了自动点击网页按钮的功能,其实很简单的,下 ...

  2. 控制 WebBrowser 控件的外观和行为

    控制 WebBrowser 控件的外观和行为 2011-03-23 09:33 在 CSDN 上经常看到以下两个问题: 1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 C ...

  3. 解决WebBrowser控件会导致应用程序占用内存居高不下问题

    WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增.WebBrowser 类使用户可以在窗体中导航网页,下面我们来看在开发中碰到WebBrowser控件 ...

  4. 更改WebBrowser控件的用户代理

    我试图在Winforms应用程序中更改WebBrowser控件的UserAgent. 我已成功使用以下代码实现此目的: [DllImport("urlmon.dll", CharS ...

  5. WebBrowser控件使用相关

    修改WebBrowser控件的内核解决方案 http://www.cnblogs.com/sung/p/3391264.html C#中的WebBrowser控件的使用 http://www.cnbl ...

  6. 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容

    第一次在CNBlogs上发Post是提出一个有关使用WebBrowser控件时对SELECT网页元素操作的疑惑,这个问题至今也没有解决,后来有朋友在该Post的评论里询问WebBrowser控件如何在 ...

  7. pb调用计算机默认游览器,PB打开ole控件IE浏览器版本问题_指定Webbrowser控件所用IE内核版本(转)...

    如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe 对于32位 ...

  8. 强制IE浏览器或WebBrowser控件使用指定版本显示网页

    最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. 发现WebBrowser控件默认使用的版本是IE7的兼容模式.而淘宝的宝贝详细页居然对IE7的支持不是很好. 成交记 ...

  9. c#中WebBrowser控件的使用方法

    首先先来简单介绍一下webbrowser控件,这个控件是可以实现在form窗体中添加网页内容的.如图,我在form中加入了百度api,(百度地图api调用博客里有讲) 使用这个控件其实很简单 (1)第 ...

最新文章

  1. 矩阵的终极分解-奇异值分解 SVD
  2. Configuring the Java Virtual Manager (JVM)
  3. https://blog.csdn.net/weixin_40412037/article/details/112235003
  4. android 无线视频,Android系统无线视频流媒体的接收、解码与播放
  5. [NOI2007]社交网络
  6. 微信查询订单API与商派ecstore订单状态对接
  7. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题...
  8. 素数在c语言中怎么表示,请问素数怎么样表示
  9. rk3399 io工具的使用示例
  10. shell脚本如何显示所执行的每一条命令
  11. Tomcat的工作模式
  12. 项目日报模板_能力再强也要常向领导汇报工作,掌握万能模板,不做职场小透明...
  13. angular 万年历_angularjs日期选择插件
  14. MATLAB牛拉法计算潮流,Matlab牛拉法潮流计算程序
  15. 国内比较好的云服务提供商有哪些?
  16. vob文件如何转换成mp4
  17. Windows电脑无法识别msi文件,无法安装msi文件解决办法
  18. 喜讯 | 哈特公寓荣誉获最佳新锐公寓奖
  19. SpringBoot中SpringSecurity+JWT的使用
  20. Smallpdf 轻松玩转PDF。我们爱它。

热门文章

  1. 学习笔记之-MySql高级之sql优化
  2. 【SQL】表A多个字段,关联表B一个字段说明
  3. day34 并行并发、进程开启、僵尸及孤儿进程
  4. 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的
  5. 设计模式:策略模式(Strategy)
  6. C#可空类型(Nullable Types)
  7. [置顶]IFTTT与Google+是什么?ifttt怎么玩?
  8. [原创]Flex文本框自动提示(AutoSuggest)、自动完成(AutoComplete)
  9. System.IO 的三个抽象类
  10. python中的re模块和正则表达式基础