WPF的webBrowser控件关键代码
1、根据元素ID获取元素的值。
比如要获取<img class="" id="regimg" src="/register/checkregcode.html?1287068791" width="80" height="22">这个标签里的src属性的值:
mshtml.IHTMLDocument2 doc2 = (mshtml.IHTMLDocument2)webBrowser1.Document; mshtml.IHTMLElement img = (mshtml.IHTMLElement)doc2.all.item("regimg", 0);
string imgUrl = (string)img.getAttribute("src");
2、填写表单,并确定
mshtml.IHTMLElement loginname = (mshtml.IHTMLElement)doc2.all.item("loginname", 0); mshtml.IHTMLElement loginPW = (mshtml.IHTMLElement)doc2.all.item("password", 0); mshtml.IHTMLElement loginBT = (mshtml.IHTMLElement)doc2.all.item("formsubmit", 0); mshtml.IHTMLElement loginYZ = (mshtml.IHTMLElement)doc2.all.item("regcode", 0); loginname.setAttribute("value", tbLoginName.Text);
loginPW.setAttribute("value", tbLoginPassWord.Password);
loginYZ.setAttribute("value", tbYZ.Text);
loginBT.click();
3、获取源码
textBox1.Text = doc2.body.innerHTML;
4、执行JS
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc2.parentWindow;
win.execScript("changeRegImg()", "javascript");//使用JS
5、禁止JS,WPF下目前发现唯一适用的一种方法:
public void HideScriptErrors(WebBrowser wb, bool Hide)
{
FieldInfo fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
if (fiComWebBrowser == null) return;
object objComWebBrowser = fiComWebBrowser.GetValue(wb);
if (objComWebBrowser == null) return;
objComWebBrowser.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null,objComWebBrowser, new object[] { Hide });
}
void webBrowser1_Navigated(object sender, NavigationEventArgs e)
{
HideScriptErrors(webBrowser1, true);
}
最新文章
- Android APK如何签名
- 【WP8.1开发】认识后台任务
- 如果觉得配置文件没有错,但web-dev-server总是报错,可以在hosts文件里加一行127.0.0.1 localhost
- 【转】解决编译安装NGINX时make报错
- 内存中 OLTP - 常见的工作负荷模式和迁移注意事项(二)
- Thread源码分析
- iphone获取当前运行进程列表
- javascript回车完美实现tab切换功能
- mkpasswd
- 判断div是否隐藏
- ruby2.0(rails)以后版本的debug
- Hibernate实体映射配置(XML)简单三步完美配置
- 安装Java Cer证书
- python之decode、encode及codecs模块
- 防止SQL注入的6个要点
- PostgresSQL使用Copy命令能大大提高数据导入速度
- LeetCode: Valid Sudoku 解题报告
- dp之最长递增、公共子序列总结
- javascript 类型 内存 对象
- ES博客链接