webbrowser自动填表模板

.在delphi中实现网页的自动输入 <br />如果webbrowser由你创建<br />如果网页内容可知<br />用263举个例子<br />procedure   TForm1.FormCreate(Sender:   TObject);<br />begin<br />    b   :=   false;<br />    webbrowser1.Navigate('http://www.263.net');<br />end;<br />procedure   TForm1.WebBrowser1DocumentComplete 阅读详情

 webbrowser自动填表模板

 

1.有框架

2.无框架


未完善:

有些框架还有问题,如三层框架等

代码见下:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,MSHTML, SHDOCVW,IdGlobal;

type
TMainFrm = class(TForm)
    btnTest: TButton;
    edURL: TEdit;
    Label1: TLabel;
    procedure btnTestClick(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;

var
MainFrm: TMainFrm;

implementation

{$R *.dfm}
procedure FillIEForm(aURL:string);
procedure DoWithHtmlElement(aElementCollection:IHTMLElementCollection);
var
    k:integer;
    vk:oleVariant;
    Dispatch: IDispatch;
    HTMLInputElement:IHTMLInputElement;
    HTMLSelectElement:IHTMLSelectElement;
    HTMLOptionElement: IHTMLOptionElement;
    HTMLTextAreaElement: IHTMLTextAreaElement;
    HTMLFormElement:IHTMLFormElement;
    HTMLOptionButtonElement:IHTMLOptionButtonElement;
begin
    for k:=0 to aElementCollection.length -1 do
    begin
      Vk:=k;
      Application.ProcessMessages;
      Dispatch:=aElementCollection.item(Vk,0);
      if Succeeded(Dispatch.QueryInterface(IHTMLInputElement,HTMLInputElement)) then
      begin
        With HTMLInputElement do//单行文本
        begin
          if (UpperCase(Type_)='TEXT') or (UpperCase(Type_)='PASSWORD') then
          begin
            value:='text';
          end
          else if (UpperCase(Type_)='CHECKBOX') then//复选框
          begin
            checked:=true;
          end
          else if (UpperCase(Type_)='RADIO') then//单选框
          begin
            checked :=true;
          end;
        end;
      end
      else if Succeeded(Dispatch.QueryInterface(IHTMLSelectElement,HTMLSelectElement)) then
      begin
        With HTMLSelectElement do//下拉框
        begin
          selectedIndex :=1;
        end;
      end
      else if Succeeded(Dispatch.QueryInterface(IHTMLTEXTAreaElement,HTMLTextAreaElement)) then
      begin
        with HTMLTextAreaElement do//多行文本
        begin
          value :='textarea';
        end;
      end
      else if Succeeded(Dispatch.QueryInterface(IHTMLOptionElement,HTMLOptionElement)) then
      begin
        with HTMLOptionElement do//下拉选项
        begin
          //处理
        end;
      end
      else if SUCCEEDED(Dispatch.QueryInterface(IHTMLFormElement,HTMLFormElement))then
      begin
        with HTMLFormElement do//表单
        begin
          //处理
        end;
      end
      else if SUCCEEDED(Dispatch.QueryInterface(IHTMLOptionButtonElement,HTMLOptionButtonElement))then
      begin
        //不明
        //处理
      end
      else
        //showmessage('other');
        ;
    end;
end;
var
ShellWindow: IShellWindows;
Web: IWebBrowser2;
Dispatch: IDispatch;
i,j:integer;
IEAddress:string;
HTMLDocument:IHTMLDocument2;
ElementCollection:IHTMLElementCollection;
FrameWindow:IHTMLWindow2;
Vi,Vj:OLEVariant;
HTMLFrameBase :IHTMLFrameBase ;
HTMLFrameElement:IHTMLFrameElement ;
HTMLIFrameElement:IHTMLIFrameElement;
begin
ShellWindow := CoShellWindows.Create;
for i:=0 to ShellWindow.Count -1 do
begin
    Vi:=i;
    Dispatch:=ShellWindow.Item(Vi);
    if Dispatch=nil then continue;
    Dispatch.QueryInterface(IWebBrowser2,Web);
    if Web<>nil then
    begin
      IEAddress:=Web.LocationURL;
      if Pos(aURL,IEAddress)>0 then
      begin
        Web.Document.QueryInterface(IHTMLDocument2,HTMLDocument);
        if HTMLDocument<>nil then
        begin
          if HTMLDocument.frames.length =0 then//无框架
          begin
            ElementCollection:=HTMLDocument.Get_All;
            DoWithHtmlElement(ElementCollection);
          end
         else//有框架
          begin
            for j:=0 to HTMLDocument.frames.length -1 do
            begin
              Vj:=j;
              Dispatch:=HTMLDocument.frames.item(Vj);
//              if Succeeded(Dispatch.QueryInterface(IHTMLFrameBase,HTMLFrameBase)
              if Succeeded(Dispatch.QueryInterface(IHTMLWindow2,FrameWindow)) then
              begin
//                DoWithHtmlElement(FrameWindow.document.all);
              end;
            End;
          end;
        end;
      end;
    End;
end;
end;

procedure TMainFrm.btnTestClick(Sender: TObject);
begin
FillIEForm(edUrl.Text);
end;
end.

用Java实现对接豆包ai火山引擎详细版简单明了ai对话 第二部分码实现。 阅读详情

相关推荐

Skills入门学习路线

简单来说,Skills就像是给Claude准备的”插件包"或”工具箱”。它是一个集合,里面装了特定的操作指令(Instructions)、可执行脚本(Scripts)和相关素材(Resources)。2025 年 10 月中旬,Anthropic 正式发布 Claude Skills。两个月后,Agent Skills 作为开放标准被进一步发布,意在引导一个新的 AI Agent 开发生态。OpenAI、Github、VS Code、Cursor 均已跟进。为了更好的理解,你可以把。

十二测试录 1053

Delphi自动写IE输入框

//自动写主要过程; procedure TForm1.FillIEForm(aValidatecode: String; bPost: boolean); procedure DoWithHtmlElement(aElementCollection:IHTMLElementCollection); var k:integer; vk:oleVariant; Dispatch: ID

疯流人物 2524

webbrowser自动填表和提交

webbrowser自动填表和提交,分析网页元素,实现网页自动填表的功能,非常好用的程序

Delphi中WebBrowser自动填表模板

 unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls,MSHTML, SHDOCVW,IdGlobal;type  TMainFrm = class(TForm)    btnTest: TButton;  

iseekcode的专栏 5631

Delphi7 Webbrowser制作网页表单自动提交器按步分析(1)

====================================================== 注:本文源码点此下载 ====================================================== 相信很多朋友都有过这样的想法,一些单调的表单提交工作,能不能有一些简单方便的方法来完成这些重复的劳动。 比如说,注册用户啦,网站添加文章啦。

javazhuanzai的专栏 637

html 填表模板,Delphi中WebBrowser自动填表模板

unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls,MSHTML, SHDOCVW,IdGlobal;typeTMainFrm = class(TForm)btnTest: TButton;edURL: TEdit;La...

weixin_29800917的博客 226

Delphi中WebBrowser用IHTMLDocument2自动填表中的Frame问题

网上找了一堆,没有找到Frame嵌套情况的。 Frame里面的东西,相当一个独立的网页。它的JavaScript环境是独立的,变量是受保护的。所以,要先找到具体的Frame,然后再执行脚本。 这段码使用了递归。抛砖引玉。 var   doc: IHTMLDocument2;   ICount: Integer;   procedure showFrame(doc: IHTMLDocu

htits2008的专栏 1450

html 自动填表,Delphi WEB网页自动填表

Delphi中利用webbrowser控件来实现自动填表,此例为一模板,稍作修改可用来自动申请QQ、邮箱、论坛ID之类(不包含验证码识别)。码如下:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,Dialogs, StdCtrls,MSHTML, SH...

weixin_39906499的博客 627

Delphi下WebBrowser应用示例

以下是示范如何读取及提交TWebBrowser中的网页示例内容:获得网页中表单(form)的数量按编号从页面中获取表单按编号得到表单的名称按名称提取表单获取表单中所有字段的名称获取表单中指定名称的字段的值设置表单中指定名称的字段的值提交表单其它演示以下的示例假设TWebBrowser被命名为WebBrowser而且网页被已经打开.获得网页中表单(form)的数量functio...

weixin_34004750的博客 157

用DELPHI实现网页的自动

基本格式如下: procedure TForm1.Button1Click(Sender: TObject); begin     webBrowser.navigate('http://www.83925.com'); end; procedure TForm1.WebBrowserDocumentComplete(Sender: TObject;     const pDi

u011354184的专栏 2565

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

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

☆永遠☆的专栏 1235

delphi中document怎么把html字符串读入,如何在Delphi中将事件附加到IHTMLDocument2链接元素?...

procedure DoDocumentComplete(const pDisp: IDispatch; var URL: OleVariant);varDocument:IHTMLDocument2;Body:IHTMLElement;Links:IHTMLElementCollection;i:integer;tmp:IHTMLElement;begintryDocument := (pDis...

weixin_36211941的博客 349

Delphi : WebBrowser、MSHTML在Delphi中的使用

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   WebBrowser、MSHTML在Delphi中的使用 1.初始化和终止化 uses ActiveX; initialization OleInitialize(nil); finalization try     OleUninitialize; except end; 2.Emp

u010569495的专栏 969

【Delphi POST提交数据】

unit DcpMain; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vc...

阳光有点冷 1387

手把手教你从0到1搭建web ui自动框架(python3+selenium3+pytest)

-前期准备 -环境 -实战: 从0开始 前期准备 为更好的学习自动框架搭建,你需要提前了解以下知识: python基础知识 pytest单元测试框架 PO模式 selenium使用 环境 本次我们自动化环境为: mac+python3+selenium3+pytest==6.2.4 (不管是win还是mac,网上环境安装教程很多,参考下安装即可) -实战: 从0开始 接下来我们以这个系统的登陆页面作为demo,开始进行web UI框架搭建: 最开始,我们设计了一个test_login.py文件,里完成了

ke221222的博客 6647

webUI自动化之基本框架搭建(python + selenium + unittest)

该文档描述一次基于python的webUI自动框架搭建过程及简单的使用。框架构成:python + selenium + unittest准备:注意:Webdriver.exe的版本需要和浏览器版本一致,不一致则会报错,浏览器版本可通过浏览器 “设置” --> “关于Chrome” 查看Webdriver.exe下载地址:http://chromedriver.storage.googleapis.com/index.html需掌握python基础、元素定位、三种等待方式、鼠标键盘事件、窗口切换等(多多益

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 2739

带你一步步搭建Web自动化测试框架

除@pytest.mark.skip、@pytest.mark.skipIf、@pytest.mark.xfail、@pytest.mark.paramitrize等系统标记外,我们可以自定义任何标记来使用,如使用smoke标记冒烟用例,使用destructive标记破坏性用例(有修改操作未还原的),使用abnormal标记异常用例,使用flaky标记不稳定用例,使用h5标记H5相关用例。测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程。

2835

delphi WebBrowser的使用方法详解(四)-webbrowser轻松实现自动填表

webbrowser轻松实现自动填表 步骤如下: 第一步:获取网页 调用Webbrowser 的Navigate系列函数。等待网页装载完成,得到document对象。 在调用 webBrowser.Document 之前,请确保 Webbrowser 网页装载完成,可以通过Webbrowser的DocumentCompleted事件进行监视。 小技巧 先指...

weixin_33974433的博客 543

docker desktop安装包

Docker Desktop是一种开源的应用容器引擎,它允许开发者将他们的应用及依赖项打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,甚至可以实现虚拟化。这种技术对于简化配置,节省项目环境部署时间以及确保环境一致性等场景有着显著的优势。适用人群主要是软件开发者、系统管理员和DevOps工程师。特别是对需要在多台机器上部署相同应用程序的人而言,Docker可以大大提高他们的工作效率。因为所有的应用程序和依赖都包含在一个容器中,所以无论在哪台机器上运行,都能得到一致的结果。使用场景主要包括:单项目打包、整套项目打包、节省项目环境部署时间、环境一致性、持续集成、微服务和弹性伸缩等。例如,通过Docker,我们可以在前期将每个项目环境打包到镜像,然后推送到镜像仓库。当需要部署这个项目时,只需拉取镜像并启动容器,该项目即可访问。这种方法可以实现一次构建多次部署,大大提高工作效率。

上一篇: WebBrowser的用法
下一篇: WebBrowser如何处理弹出信息框
iseekcode
博客等级 码龄18年 36粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值