Delphi实现网页表单数据的自动提交

简介:     MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素. MSHTML对象模型是由一些对象和集合组成的.处于根部的是HTML,描述了打开页面的1个窗口,包括一系列集合和对象。如Frames集合,History,Location,Navigator,Document,Vi—sum,Event对象等.其中
 

 

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.

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;

登录"按钮一般都是网页中默认的回车按钮,所以可以用上面代码来代替前面的点击按钮。

相关文章
|
4月前
|
前端开发 JavaScript API
网页自动提交Form表单的方法
在数字化时代,自动化任务如网页自动提交Form表单,能大幅提升效率。这涉及自动填写注册信息等场景。本文概述了多种实现方式:JavaScript可直接在前端自动填充并提交;Python结合Selenium模拟真实用户操作;AOKSend作为API工具发送表单数据;第三方工具如iMacros、AutoHotkey和Zapier提供非编程自动化选项。根据需求选择合适方法,可显著提升工作效能,减少重复性劳动。
|
4月前
|
JavaScript
文本,视频网站提交的方法,配置提交的按钮,一次性提交的方法,Vue编写好代码向后台发送数据就行
文本,视频网站提交的方法,配置提交的按钮,一次性提交的方法,Vue编写好代码向后台发送数据就行
|
4月前
|
JavaScript
文本----简单编写文章的方法(上),自己编写好页面就上传到自己的服务器上,使用富文本编辑器进行编辑
文本----简单编写文章的方法(上),自己编写好页面就上传到自己的服务器上,使用富文本编辑器进行编辑
|
前端开发 JavaScript 数据安全/隐私保护
form表单常见控件应用,实例讲解注册页面的开发【2020网页综合笔记03】
form表单常见控件应用,实例讲解注册页面的开发【2020网页综合笔记03】
193 0
form表单常见控件应用,实例讲解注册页面的开发【2020网页综合笔记03】
|
前端开发 数据库
[原创]@Html.DropDownListFor获取用户选中的数据并传到后台
[原创]@Html.DropDownListFor获取用户选中的数据并传到后台
|
JSON 前端开发 网络架构
表单自动完成
public function rest() { $q = $this->request->get('q'); $dicts = Db::name($this->table)->where('dvalue','like','%'.
1092 0