日期:2014-05-18  浏览次数:20995 次

自动填充网页表单
事情是这样的 :我现在做录入工作,信息都在excel 表格里,我要一条条的通过浏览器把信提交到服务器上(我只是客户端,接触不到数据库),很费劲也很麻烦。我现在想写个程序,能实现:按下按钮,就能把选中的数据自动的填充到网页的表单里面。希望高手们都尽力帮帮忙,小弟不胜感激。

注:这里不是页面传值。
举个例子吧:你写个winform 应用程序,上面方 一个标签 一个按钮。实现 按下按钮,就能把标签的值复制到 百度的 搜索框里!
拜求源码 。
你用 模拟键盘 实现也行,做个浏览器插件也成或者 给我指明个路子 .希望大家尽力帮帮忙 。给个例子最好了 ,尽量是C#能实现的!

------解决方案--------------------
这样用winform的webbrowser控件,很容易实现的!
思路是这样的:

1、在.Net 2.0中,整个HTML文档以及其包含的各个HTML元素,都和一个个HtmlDocument、HtmlElement之类的.Net对象对应。在Webbrowser控件中去浏览某个网页,然后用下面的方法可以得到这些对象的引用:
C# code
HtmlDocument htmlDoc = webBrowser.Document;
HtmlElement btnElement = htmlDoc.All["btnClose"];//得到关闭按钮

HtmlElement tbUserid = webBrowser.Document.All["username"];//得到用户名文本框

------解决方案--------------------
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");
------解决方案--------------------
看了你的要求,发现你问题把ls几位带沟里了

你没必要去填写网页,你只需要用httpwebrequest通过post传值一个构造好的封包就可以了

建议处理过程
1。使用ADO.net将记录读取到list列表
2。开启线程,遍历list列表,使用httpwebrequest构造封包post值(中间线程得休眠几秒,不然就是导入工具,而是潮水攻击工具了)
3。接收httpwebrequest的结果信息,使用正则比对页面信息是否提交正确(server端一般都会有数据格式验证滴,所以不能只传不接)将失败的提交信息 存入失败列表
------解决方案--------------------
标准的做法应该是模拟post,模拟键盘的可以参考
http://blog.csdn.net/amandag/archive/2010/06/16/5673370.aspx