社区
C#
帖子详情
如何自动填写IE上的网页表单?
xfyxq
2007-05-24 11:13:24
比如用IE浏览器打开了一个网页表单,我现在要程序自动填写IE上表单的文本框,该怎样实现?
因为是用IE浏览器打开的网页,无法使用webbrowser载入并分析该网页(要载入的话又要输入),大家有什么方法说来听听,是不是要调用API先FindWindow这个IE窗口再SetWindowText设置内容?但如果是SetWindowText的话,表单上有这么多个Text框,我又如何得到他们所代表的类型?
...全文
3532
13
打赏
收藏
如何自动填写IE上的网页表单?
比如用IE浏览器打开了一个网页表单,我现在要程序自动填写IE上表单的文本框,该怎样实现? 因为是用IE浏览器打开的网页,无法使用webbrowser载入并分析该网页(要载入的话又要输入),大家有什么方法说来听听,是不是要调用API先FindWindow这个IE窗口再SetWindowText设置内容?但如果是SetWindowText的话,表单上有这么多个Text框,我又如何得到他们所代表的类型?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
点康
2011-04-04
打赏
举报
回复
httpwebrequest通过post传值
findwindow获取句柄,sendmessage给文本框等赋值
webbrower遍历html标签,根据属性实现赋值
HtmlElement btnSubmit = webBrowser.Document.All["submitbutton"];
HtmlElement tbUserid = webBrowser.Document.All["username"];
HtmlElement tbPasswd = webBrowser.Document.All["password"];
tbUserid.SetAttribute("value", "");
tbPasswd.SetAttribute("value", "");
btnSubmit.InvokeMember("click");
dons3
2008-08-27
打赏
举报
回复
帮顶两下!
xfyxq
2007-05-24
打赏
举报
回复
warran21(鑫罡) ( ) 信誉:100 Blog 加为好友 2007-05-24 12:17:50 得分: 0
哦,是这样的啊.
不用webBrowser啊...
========================
也不是说绝对不能用webBrowser,如果webBrowser能把内容直接向Microsoft Internet Explorer填内容还是可以的。
wjjSoft
2007-05-24
打赏
举报
回复
关注中
warran21
2007-05-24
打赏
举报
回复
哦,是这样的啊.
不用webBrowser啊...
warran21
2007-05-24
打赏
举报
回复
怎么会打不开,汗....
c#使用webBrowser,控制页面、提交表单的两种方法
一、第一种方法貌似网上很少有人提。。。。就是使用javascript去控制页面。
熟悉javascript的人知道,它主要是用来控制客户端浏览器上行为动作的语言。
用浏览器随便打开一个页面,在地址栏输入: javascript:alert("a");void(0); 确认,就会弹出警告框。也就是说,可以通过在地址栏输入js代码,控制页面中内容。
比如要添表单,可以 javascript:document.getElementById("username").value="http://blogbeta.blueidea.com/warran";document.getElementById("password").value="123456";void(0);
那么,使用webBrowser,通过js去控制页面,提交表单。
webBrowser1.Navigate("javascript:document.getElementById(\"username\").value="http://blogbeta.blueidea.com/\"warran\";document.getElementById(\"password\").value=\"123456\";void(0);");
如果还要提交表单,可以加上document.form1.submit();" 就可以了。
不过用这个方法,要注意两点:
1、在一次运行中,不能多次使用。
比如
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate("javascript:document.getElementById("username").value="http://blogbeta.blueidea.com/warran";void(0);");
webBrowser1.Navigate("javascript:document.getElementById("password").value="123456";void(0);");
}
这样,就会出问题。结果是没反映。。。。但改成如下,就可以,但基本上,这样不适合实际应用。
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate("javascript:document.getElementById("username").value="warran";void(0);");
messageBox.Show("aaa");
webBrowser1.Navigate("javascript:document.getElementById("password").value="123456";void(0);");
}
就是说弹个警告框,就可正常运行了。大致意思就是让主窗口重新激活一下,才行。。。
2、Navigate中的js代码不能过长,不然仍然会不执行。。。。
二、第二种方法。也是推荐使用的方法,使用ihtmldocument2的类去控制。
1、添加引用。
在COM中,选择Microsoft.mshtml
2、使用命名空间。
using mshtml;
3、具体代码。
IHTMLDocument2 doc = (IHTMLDocument2)this.webBrowser1.Document.DomDocument;
mshtml.HTMLInputTextElement text1;
text1 = (HTMLInputTextElement)doc.all.item("username", 0);
((mshtml.HTMLInputElement)(text1)).value = "warran";
//这里注意,因为是input输入框,所以要定义HTMLInputTextElement类
text1 = (HTMLInputTextElement)doc.all.item("password", 0);
((mshtml.HTMLInputElement)(text1)).value = "123456";
mshtml.HTMLFormElement f1 = (mshtml.HTMLFormElement)doc.all.item("form1", 0);
((HTMLFormElement)(f1)).submit();
//因为是form表单,所以要定义HTMLFormElement类
xfyxq
2007-05-24
打赏
举报
回复
不能用webBrowser,因为用户一般都是用IE打开网页,不是用我自已做的浏览器访问网页;我要做的就是用户按下某个快捷键,我枚举当前所有IE窗口,找到那个需要自动填写的IE窗口后,自动向该IE窗口表单中填写部分数据,然后再由用户自已进一步手工修改和提交。
赴日工作招聘程序员
2007-05-24
打赏
举报
回复
打不开.内容贴过来吧.
warran21
2007-05-24
打赏
举报
回复
看看我前几天写的blog
http://warran.blueidea.com/archives/2007/4898.shtml
xfyxq
2007-05-24
打赏
举报
回复
晕,我不用提交的....
我只需要把要填的东东自动填到IE上就行了,然后由用户自已到IE中点按钮提交.
playzxw
2007-05-24
打赏
举报
回复
可以换一种思维。
1 通过Socket得到表单的Html
2 分析这个Html
3 添加你的内容
4 通过Socket提交表单的Html
coolpc
2007-05-24
打赏
举报
回复
帮顶……
ameily_99
2007-05-24
打赏
举报
回复
jf
C#
网页
表单
自动
填写
实现原理
网页
表单
自动
填写
实现原理曾今向网友介绍过我的一个自己编写的
自动
填写
网页
表单
的小程序,很多网友都觉得很实用,也许多会对这个程序的源码很感兴趣,这里我只是简介下程序中用到的主要代码。最初我是通过下面这篇...
mfc 直接操作ie浏览器
自动
填写
表单
实例
本文介绍的知识和示例程序都是围绕如何遍历 HTML 中的
表单
(form)并枚举出
表单
域的属性为目标的,对于
网页
中的其它元素,比如图象、连接、脚本等等,应用同样的方法都可以轻松实现。 二、
网页
的文档层次结构 IE...
网页
表单
文本框的
自动
填写
(四种方法)
在使用浏览器
自动
填写
网页
表单
时,遇到最多的就是文本输入框了。 1、通过修改元素的value属性完成填表 以百度网站为例,先看看输入框的HTML源码: 其本质是一个input元素,type属性为text。在执行
自动
填表时,直接...
利用WebBrowser
自动
填写
网页
上的
表单
procedure TForm1.db_writeClick(Sender: TObject); var o:oleVariant;...以上例程列举了
网页
上常用控件的控制方法,主要思路就是获取ID,或者下拉菜单中的顺序,进行赋值。使用fireevent制造事件。
C#技巧:
网页
表单
自动
填写
技术
C#技巧:
网页
表单
自动
填写
技术 var ie=Wscript.createobject("InternetExplorer.Application");var args = Wscript.arguments;var followme="http://www.google.com/";if(args.length>0){ followme+=args(0);}ie....
C#
111,128
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章