C#实现表单的自动填写和提交

更新时间:2023-07-22 21:31:33 阅读: 评论:0

C#实现表单的⾃动填写和提交
1、⾃⼰做⼀个WinForm程序,上⾯添加⼀个WebBrowr控件,去访问这个页⾯,然后获取页⾯上对应的元素,例如⽤户名⽂本框,然后设置html元素的值,例如⽤户名设定为多少,密码设定为多少等。
上⾯等于完成了⾃动填表功能
2、⾃动提交功能。
获取登录页⾯上按钮元素,然后程序去点击该按钮,在⾃动填表的基础上,实现点击登录按钮,启动登录。
以下是参考资料:
下⾯的代码假设你已经建⽴了⼀个Windows Form,上⾯有⼀个WebBrowr名为“webBrowr”。
Study Ca 1:⽤WinForm的Event Handler响应Web页⾯的事件
现 在有这样⼀个Windows Application,它的界⾯上只有⼀个WebBrowr,显⽰⼀个本地的HTML⽂件作为界⾯。现在的问题是,所有逻辑都可以放在HTML⽂件 ⾥,唯独“关闭”按钮遇到了困难——通常,Web页⾯是没有办法直接控制浏览器的,更不⽤说结束这个WinForm程序了。支点教育
food但是,在.Net 2.0当中,“由Windows Form响应Web页⾯的事件”已经成为了现实。jay怎么读
在.Net 2.0中,整个HTML⽂档以及其包含的各个HTML元素,都和⼀个个HtmlDocument、HtmlElement之类的.Net对象对应。因此只要找到这个“关闭”按钮对应的HtmlElement对象,为其click事件添加Event Handler即可。
canton假设HTML源代码如下:
HTML code
<html><body><input type="button"id="btnClo"value="关闭"/></body></html>
那么找出该按钮并为之添加Event Handler的代码如下:
C# code
HtmlDocument htmlDoc =webBrowr.Document; HtmlElement btnElement =htmlDoc.All["btnClo"]; if
(btnElement !=null) { btnElement.click +=new HtmlElementEventHandler(HtmlBtnClo_Click); }
其中 HtmlBtnClo_Click是按下Web按钮时的Event Handler。
很 简单吧?那么稍稍⾼级⼀点的——我们都知道⼀个HTML元素可能有很多各种各样的事件,⽽HtmlElement这个类只给出最常⽤、共通的⼏个。那么, 如何响应其他事件呢?这也很简单,只需要调⽤HtmlElement的AttachEventHandler就可以了:
车辆修理C# code
btnElement.AttachEventHandler("onclick", new EventHandler(HtmlBtnClo_Click)); //这⼀句等价于上⾯的
btnElement.click += new HtmlElementEventHandler(HtmlBtnClo_Click);
对于其他事件,把"onclick"换成该事件的名字就可以了。例如:
C# code
creeping up on youformElement.AttachEventHandler("onsubmit", new EventHandler(HtmlForm_Submit));
Study Ca 2:表单(form)的⾃动填写和提交
要使我们的WebBrowr具有⾃动填表、甚⾄⾃动提交的功能,并不困难。
假 设有⼀个最简单的登录页⾯,输⼊⽤户名密码,点“登录”按钮即可登录。已知⽤户名输⼊框的id(或Name,下同)是urname,密码输⼊框的id 是password,“登录”按钮的id是submitbutton,那么我们只需要在webBrowr的 DocumentCompleted事件中使⽤下⾯的代码即可:
C# code
英语名言名句HtmlElement btnSubmit =webBrowr.Document.All["submitbutton"]; HtmlElement tbUrid =
webBrowr.Document.All["urname"]; HtmlElement tbPasswd =webBrowr.Document.All["password"]; if (tbUrid ==null||tbPasswd ==null||btnSubmit ==null) return; tbUrid.SetAttribute("value", "smalldust"
); tbPasswd.SetAttribute("value", "12345678"); btnSubmit.InvokeMember("click");
这⾥我们⽤SetAttribute来设置⽂本框的“value”属性,⽤InvokeMember来 调⽤了按钮的“click”⽅法。因为不同的Html元素,其拥有的属性和⽅法也不尽相同,所以.Net 2.0提供了统⼀的HtmlElement来概括各种Html元素的同时,提供了这两个⽅法以调⽤元素特有的功能。关于各种Html元素的属性和⽅法⼀ 览,可以查阅MSDN的DHTML Reference。infi
slide>jielun
※关于表单的提交,的确还有另⼀种⽅法就是获取form元素⽽不是button,并⽤form元素的 submit⽅法:
C# code
HtmlElement formLogin =webBrowr.Document.Forms["loginForm"]; //……formLogin.InvokeMember("
submit");
本⽂之所以没有推荐这种⽅法,是因为现在的⽹页,很多都在submit按钮上添加onclick事件,以对提交的内容做最基本的验证。如果直接使⽤form的submit⽅法,这些验证代码就得不到执⾏,有可能会引起错误。
转⾃ csdn论坛

本文发布于:2023-07-22 21:31:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/185601.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:按钮   元素   登录   提交   事件
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图