使用WebBrowser的记录
第一:新建一个类,用了获取WebBrowser元素的类
//需要引用 Interop.SHDocVw 和 Microsoft.mshtml
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;
} //获取form表单名name,返回表单
public HtmlElement GetElement_Form(WebBrowser wb,string form_name)
{
HtmlElement e = wb.Document.Forms[form_name];
return e;
} public bool CheckExistElement_Form(WebBrowser wb, string form_name)
{
HtmlElement e = wb.Document.Forms[form_name];
if (e == null)
return false;
else
return true;
} //设置元素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);
}
}
Element el = new Element();
el.Write_value(el.GetElement_Id(IDRWebBrowser, "patient_name"), dt.Rows[]["Patient_Name"].ToString());
//IDRWebBrowser 浏览器控件 下同 SHDocVw.WebBrowser wb = (SHDocVw.WebBrowser)IDRWebBrowser.ActiveXInstance;
IHTMLDocument2 doc2 = (IHTMLDocument2)wb.Document;
IHTMLElementCollection input = (IHTMLElementCollection)doc2.all.tags("input");//获取input元素
IHTMLElementCollection select = (IHTMLElementCollection)doc2.all.tags("select");//获取select元素 //性别 input元素
IHTMLElement elementsex = (IHTMLElement)input.item("sex", );
IHTMLInputElement InputElementsex = (IHTMLInputElement)elementsex;
if (dt.Rows[]["Sex"].ToString() == "男")
{
InputElementsex.value = "";
InputElementsex.@checked = true;
}
else
{
InputElementsex.value = "";
InputElementsex.@checked = true;
}
//select元素
IHTMLElement elementgroup_id = (IHTMLElement)select.item("group_id", );
IHTMLSelectElement SelectElementgroup_id = (IHTMLSelectElement)elementgroup_id;
//SelectElementgroup_id.value = dt.Rows[0]["Profession"].ToString();
SelectElementgroup_id.value = zy.ToString();
IDRWebBrowser.Document.All["group_id"].RaiseEvent("onchange"); //获取Iframe元素
IHTMLDocument2 doc11 = (IHTMLDocument2)IDRWebBrowser.Document.Window.Frames["addriframe"].Document.DomDocument;
doc11.url="自己定义它的src"; //如果需要执行元素的事件,比如onchange事件,onclick事件,onblur事件 可以用以下两种方式
WebBrowser执行dom里面的js,以下是两种方式:
1.IDRWebBrowser.Document.All["b_year"].RaiseEvent("onblur");//执行元素name='b_year'的onblur事件,如果是onclick事件改一下就行了
2.IDRWebBrowser.Document.InvokeScript("changeDiseaseid1", new object[] { InputElementselDisease_1 });//执行changeDiseaseid1这个方法,后面是带参数的,这个网上的解释比较多,我建议用第一种,第一种好用。
使用WebBrowser的记录的更多相关文章
- 记录一次webbrowser无法加载 activex 遇到的问题
关联配置: win7 x64 Adobe Reader XI activex 安装目录X84 笔者项目运行Any CPU 无论如何也加载不出PDF 刚开始还以为自己封装的控件XWebBrowser的问 ...
- CozyRSS开发记录17-Html2Xaml
CozyRSS开发记录17-Html2Xaml 1.RssContentView还需要优化 上回做了RssContentView的显示,但是对于rss返回的描述(摘要),连换行的没有,更别说里面还有h ...
- 【WP8】WebBrowser相关
2014年09月02日更新 今天用了一下WebBrowser,在使用过程中也遇到了一些问题,在这里做一下记录 虽然WebBrowser比较重,会比较影响性能(除非一定要用到它,否则尽量少用),但有时候 ...
- CozyRSS开发记录6-继续补全订阅内容栏
CozyRSS开发记录6-继续补全订阅内容栏 1.订阅内容栏布局 按照之前的原型图,把订阅内容栏分成三块.Xaml如下: 2.照葫芦画瓢,完成头部和列表 头部依然使用ColorZone,右侧再放两个按 ...
- WebBrowser内核指定
一.背景 这几天在维护公司的一个项目,嗯…到现在七八年没人动过了(也是老古董了),都说N年前的代码碰不得 处处是坑 不能挖坑还得一步一步的填坑,恰好今天就填了一坑 此处作为记录 供以后翻阅,对代码除了 ...
- .NET4.5 WFP中用WebBrowser获取/操作网页html代码
引言 想给自己之前写的网页小说爬虫程序更新换代,之前一直是用winform的形式写的程序,因此这一次更新打算把UI换成WPF(因为听说WPF很漂亮),顺便也以此引入WPF的学习. 那么作为网页爬虫程序 ...
- csharp: WebBrowser read baidumap
setpoint.html: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Typ ...
- VC++使用WebBrowser控件,强制给控件指定版本显示网页
转载:http://www.cnblogs.com/1175429393wljblog/p/5398928.html 最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. ...
- C# WebBrowser准确判断网页最终装载完毕
== 最近写了个软件叫WebAutoScript,目的用于,网页的自动操作处理,就是说,所有你在网页上面的操作,都可以录到一个脚本中,然后可以回放这个操作过程..我是说任何过程. 程序是用C#写的,其 ...
随机推荐
- ios 好去处
1.王巍的博客(我们都叫它喵神,他很萌哒) 链接:http://onevcat.com/ (难度指数:※※※※※)理由:他的swift的新书讲解的非常好,但不适合入门,进阶的话这是很适合的一本书.其他 ...
- 如何判断C#的Finalizer线程有没有被阻塞
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何判断C#的Finalizer线程有没有被阻塞.
- 解决div和父div不上对齐
加一个vertical-align: top;就好了.原因就是inline-block会使元素向下对齐.这和padding-top,margin-top没有关系的.使用浮动就不会有这种情况了,当然会带 ...
- ios8 关于UIAlertController 代替UIActionsheet
self.alertController=[UIAlertController alertControllerWithTitle:@"请选择\n\n\n\n\n\n\n\n\n\n\n\n\ ...
- Java SE学习之printf 日期转换符
本文是学习网络上的文章时的总结,感谢大家无私的分享. System.out.printf()方法能够对日期做处理输出. 相应列表 转换符 类型 举例 c 完整的日期和时间 Mon Feb 09 18: ...
- java pdu短信解码
java pdu短信解码 长短信未验证 有兴趣的可以试试 根据python的方法改写的 /** * PDU短信解析 * * * @param pduPayload * @return */ publi ...
- Linux Bash终端快捷键小结
Ctrl + A 定位至行首 Ctrl + E 定位至行尾 Ctrl + U 向前删除至行首 Ctrl + K 向后删除至行尾 Ctrl + L 清屏
- Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space
Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space >>>>>>>>>& ...
- JQuery设置input属性(disabled、enabled)
document.getElementById("removeButton").disabled = false; //普通Js写法 $("#removeButton&q ...
- VIM学习1
不得不说鸟哥的Linux写得太好了,VIM篇章,通读一篇,感觉收获挺大.之前几年前装逼硬着学,感觉硬是没懂,看的特晕,学得特别慢,抄一两遍也没什么多大的作用.这一回看了,感觉马上就能记住不少,当然大多 ...