Delphi完成网络页面表单数据地自动提交
2007-11-21 14:28
501 查看
MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素.
MSHTML对象模型是由一些对象和集合组成的.处于根部的是HTML,描述了打开页面的1个窗口,包括一系列集合和对象。如Frames集合,History,Location,Navigator,Document,Vi—sum,Event对象等.其中描述呈现在客户窗口实际网页的是Document对象。由一系列的属性、方法、对象和集合组成.其中All集合中包含网页中所有标记(Tag)元素,其主要的方法和属性有:
(1)Length(长度):即标记出现的个数,可以把标记的集合理解为从0开始的一维数组,其次序按照标记在网页位置排列;
(2)Tags(标记):用于过滤出给定标记的集合,如Doc.Al1.Tags(P)得到所有分段标记P;
(3)Item(项目):用于选择集合中的某1个元素,如object.item(0)得到集合的第1个元素,而object.item(i)得到第i+1个元素.
此外,IHTMLElement也是个常用的集合对象,代表网页中指定标记的集合,通过这个集合对象,可以得到网页上特定标记的内容.IHTMLElement有4个主要属性:
(1)InnerText:开始标记和结束标记之间的文本;
(2)InnerHTML:开始标记和结束标记之间的文本和HTML;
(3)OuterText:对象的文本;
(4)OuterHTML:对象的文本和HTML.
当提交数据按钮没有NAME属性时,采用如下方法:
登录"按钮一般都是网页中默认的回车按钮,所以可以用上面代码来代替前面的点击按钮
MSHTML对象模型是由一些对象和集合组成的.处于根部的是HTML,描述了打开页面的1个窗口,包括一系列集合和对象。如Frames集合,History,Location,Navigator,Document,Vi—sum,Event对象等.其中描述呈现在客户窗口实际网页的是Document对象。由一系列的属性、方法、对象和集合组成.其中All集合中包含网页中所有标记(Tag)元素,其主要的方法和属性有:
(1)Length(长度):即标记出现的个数,可以把标记的集合理解为从0开始的一维数组,其次序按照标记在网页位置排列;
(2)Tags(标记):用于过滤出给定标记的集合,如Doc.Al1.Tags(P)得到所有分段标记P;
(3)Item(项目):用于选择集合中的某1个元素,如object.item(0)得到集合的第1个元素,而object.item(i)得到第i+1个元素.
此外,IHTMLElement也是个常用的集合对象,代表网页中指定标记的集合,通过这个集合对象,可以得到网页上特定标记的内容.IHTMLElement有4个主要属性:
(1)InnerText:开始标记和结束标记之间的文本;
(2)InnerHTML:开始标记和结束标记之间的文本和HTML;
(3)OuterText:对象的文本;
(4)OuterHTML:对象的文本和HTML.
procedure TForm1.Button1Click(Sender: TObject); var Doc:IHTMLDocument2; input:OleVariant; userinputelement,pwdinputelement:ihtmlinputelement; begin doc:=webbrowser1.document as ihtmldocument2; userinputelement:=(doc.all.item('user'(也就是网页中用户名控件的名字),0) as ihtmlinputelement); userinputelement.value:=edit1.text;(也就是你要向网页输入的东西) pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement); pwdinputelement.value:=edit2.text; input:=doc.all.item('submit',0); input.click; end;
当提交数据按钮没有NAME属性时,采用如下方法:
procedure TForm1.Button1Click(Sender: TObject); var Doc:IHTMLDocument2; form:ithmlformelement; userinputelement,pwdinputelement:ihtmlinputelement; begin doc:=webbrowser1.document as ihtmldocument2; userinputelement:=(doc.all.item('user'(也就是网页中用户名控件的名字),0) as ihtmlinputelement); userinputelement.value:=edit1.text;(也就是你要向网页输入的东西) pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement); pwdinputelement:=edit2.text; form:=(doc.all.item('login_form',0) as ihtmlformelement): form.submit; end;
登录"按钮一般都是网页中默认的回车按钮,所以可以用上面代码来代替前面的点击按钮
相关文章推荐
- 笔记:表单提交完成后会自动刷新页面
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Delphi实现网页表单数据的自动提交
- Form表单只提交数据而不进行页面跳转的方法
- Form表单只提交数据而不进行页面跳转的方法
- Form表单只提交数据而不进行页面跳转的方法
- 使用WebClient自动填写并提交ASP.NET页面表单
- struts里面如何自动提交多行表单数据
- form表单只提交数据而不进行页面跳转的解决方案
- 在ASP.NET登录页面中如何实现文本框焦点自动跳转及通过回车键提交表单
- springmvc返回值、数据写到页面、表单提交、ajax、重定向
- 用Servlet处理表单提交的数据,然后再jsp页面中显示
- HTML页面禁用Enter键自动提交表单
- springmvc返回值、数据写到页面、表单提交、ajax、重定向
- 使用WebClient自动填写并提交ASP.NET页面表单
- 使用WebClient自动填写并提交ASP.NET页面表单
- 带参数表单填报表提交后自动刷新页面