Delphi完成网络页面表单数据地自动提交

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;

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

时间: 2024-11-05 16:24:23

Delphi完成网络页面表单数据地自动提交的相关文章

不同编码的页面表单数据乱码问题解决方法

 这篇文章主要介绍了不同编码的页面表单数据乱码问题解决方法,本文使用一个表单不常用属性accept-charset解决了这个问题,需要的朋友可以参考下     今天遇到一个很神奇的问题,用户告诉我这边网站上的表单提交到查询系统之后得不到返回值,查询结果是0条记录,但是再本地纯html执行的结果却能搜索到值.自己验证了下,果然如此,而且比对两边GET提交的参数,除了有个字段的值不同外,参数个数这些都是相同的,故考虑有可能是编码问题造成的影响. 分别打开两个文件后查看,发现两边编码确实不一致,而服务

MVC新手提一个关于Asp.net保存页面表单数据的问题,大家给个思路!

问题描述 传统的webForm,比如用户填一个表单,填得不对的话,alert出来一个框,由于viewState的存在,输入的数据并不会消失.但是在MVC里,这样的情况,应该怎样控制?JS是可以进行简单的判断,但是如果有些判断是要提交的服务器的,然后再返回失败的话,这些输入框的值怎么保留呢?难不成全改成用Ajax提交?大家给个思路! 解决方案 解决方案二: @Html.PasswordFor(m=>m.OldPassword)@Html.ValidationMessageFor(m=>m.Old

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

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

发送-请教用php邮件 如何实现将一个静态页面表单内容提交到指定邮箱?

问题描述 请教用php邮件 如何实现将一个静态页面表单内容提交到指定邮箱? 请教用php邮件 如何实现将一个静态页面表单内容提交到指定邮箱? 补充(就是一个普通静态页面 点提交就可以发送内容到一个邮箱) 在线等 谢谢大神了 解决方案 你可以试一下phpmailer拓展.邮件的内容可以自定义,使用php的file_get_contents或取你要发送的文件内容. 解决方案二: 可以使用email扩展 我的blog里面有简单介绍 <?php require("email/class.phpma

jquery-iframe 父页面提交子页面表单..求高手

问题描述 iframe 父页面提交子页面表单..求高手 父页面有个提交按钮,点击提交按钮后把子页面的表单用Ajax提交

java web项目中jsp页面表单提交给servlet 然后显示空白页面

问题描述 java web项目中jsp页面表单提交给servlet 然后显示空白页面 经检查 servlet没问题 全查可以用 不知道什么原因 求解答 解决方案 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈解决了 解决方案二: jsp页面显示空白

struts2-从页面表单提交数据时,为啥没有经过类型转换类?求解

问题描述 从页面表单提交数据时,为啥没有经过类型转换类?求解 在进行类型转换测试时发现,在从页面提交参数到后台时,并没有进过我配置的类型转换器,但在将后台类中的属性输出到页面上时,经过了类型转换器.有没有哪位骚年能指出错在哪里? struts.xml的配置内容<?xml version=""1.0"" encoding=""UTF-8""?><!DOCTYPE struts PUBLIC-//Apache S

jap动态加载页面表单验证问题

问题描述 jap动态加载页面表单验证问题 JSP页面中使用 解决方案 这是怎么了,怎么看不到内容啊 解决方案二: 干嘛呢这是,干嘛呢这是,

magento注册页面表单验证在哪个文件里

问题描述 magento注册页面表单验证在哪个文件里 magento注册页面,输入的账号或是密码不符合规定的会弹出一条信息提醒,请问这条信息是在哪个页面上可以找到,我想把他改成中文的,一直找不到在哪里? 解决方案 在magento二次开发时,经常需要自己加一些模具,来满足自己的特定需求. 添加Block/里面的文档时,需要特别注意一些地方,其中包括在Form.php中addField的时候