社区
C#
帖子详情
如何自动填写IE上的网页表单?
xfyxq
2007-05-24 11:13:24
比如用IE浏览器打开了一个网页表单,我现在要程序自动填写IE上表单的文本框,该怎样实现?
因为是用IE浏览器打开的网页,无法使用webbrowser载入并分析该网页(要载入的话又要输入),大家有什么方法说来听听,是不是要调用API先FindWindow这个IE窗口再SetWindowText设置内容?但如果是SetWindowText的话,表单上有这么多个Text框,我又如何得到他们所代表的类型?
...全文
3467
13
打赏
收藏
如何自动填写IE上的网页表单?
比如用IE浏览器打开了一个网页表单,我现在要程序自动填写IE上表单的文本框,该怎样实现? 因为是用IE浏览器打开的网页,无法使用webbrowser载入并分析该网页(要载入的话又要输入),大家有什么方法说来听听,是不是要调用API先FindWindow这个IE窗口再SetWindowText设置内容?但如果是SetWindowText的话,表单上有这么多个Text框,我又如何得到他们所代表的类型?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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窗口表单中填写部分数据,然后再由用户自已进一步手工修改和提交。
IT服务
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#
网页
表单
自动
填写
实现原理
网页
表单
自动
填写
实现原理曾今向网友介绍过我的一个自己编写的
自动
填写
网页
表单
的小程序,很多网友都觉得很实用,也许多会对这个程序的源码很感兴趣,这里我只是简介下程序中用到的主要代码。最初我是通过下面这篇文章渐渐积累的相关知识,再慢慢完善,现转来同大家分享,共同学习。 话说有了WebBrowser类,终于不用自己手动封装SHDocVw的 AxWebBr...
mfc 直接操作ie浏览器
自动
填写
表单
实例
在我们编写的程序中,如果想要实现对浏览器打开的
网页
进行监视、模拟操纵、动态提取用户输入、动态修改......等功能,那么请你抽出宝贵的时间,继续往下阅读。本文介绍的知识和示例程序都是围绕如何遍历 HTML 中的
表单
(form)并枚举出
表单
域的属性为目标的,对于
网页
中的其它元素,比如图象、连接、脚本等等,应用同样的方法都可以轻松实现。 二、
网页
的文档层次结构 IE 浏览器,采用 DOM(
网页
表单
文本框的
自动
填写
(四种方法)
随着应用系统从客户端+服务器模式,逐渐发展成浏览器+服务器模式。越来越多的操作是基于浏览器来完成的,在输入数据时可以方便的使用批量操作工具,提高工作效率。
利用WebBrowser
自动
填写
网页
上的
表单
procedure TForm1.db_writeClick(Sender: TObject); var o:oleVariant; err,js:string; i:integer; const mz:array[1..51] of string=('汉族','蒙古族','回族','藏族','维吾尔族','苗族','彝族','壮族','布依族', '朝鲜族','满族','侗族','瑶族','白族...
html 360登录
自动
填写
,汇总:如何在360浏览器中删除
自动
填写
的
表单
?
第1步:查找设置第2步:打开历史记录:第3步单击以清除Internet痕迹第4步:第5步:清理完成如何清除
自动
保存在360浏览器中的登录帐户和密码?要清除
自动
保存在360浏览器中的登录帐户和密码,方法如下:1.打开360浏览器,单击“工具”,然后选择“清除Internet痕迹”;2.单击“管理已保存的帐户和密码”;3.选择已保存帐户和密码的特定
网页
,然后单击“删除”按钮。如何清除保存在360浏览器...
C#
111,095
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章