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.

从VB6到现代技术:网页自动填表的核心原理与实战迁移指南 网页自动化是提升工作效率、实现流程自动化的关键技术,其核心原理在于对网页文档对象模型(DOM)的解析与操作。通过定位表单元素并模拟用户交互事件,可以实现自动填写、提交等操作,这在数据采集、测试自动化、机器人流程自动化(RPA)等领域具有重要价值。无论是处理重复性线上任务,还是进行系统测试,掌握网页自动填表技术都至关重要。本文以经典的**VB6 WebBrowser控件**项目为切入点,深入剖析了**DOM操作与事件模拟**这一通用底层逻辑,并探讨了如何将其迁移至Python Selenium、Puppete 阅读详情

相关推荐

webbrowser自动填表和提交

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

Delphi自动填写IE输入框

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

疯流人物 2527

【Boost5】Boost变换器的输入电容

节点的电流有3个,一个是来自电源输入的,由于我们把Vin看成理想电源以及线路的电感的存在,它可以近似看作是恒定的电流源Iin,一个是流向输入电容Cin的电流Icin,另外一个节点是电感L电流IL。电容电流波形在整个开关周期内的平均值为0,充电和放电在一个周期中各占1/2,在图中充电部分面积和放电部分面积相等,那么在充电或放电的电荷量Q=I*t,从图中可以看出,在一个周期内电容电流变化量是ΔIL,那在电容在充电1/2T周期中电流的变化量是1/2ΔIL。输入电容上的ESR也会随着电流变化,影响输入电压的变化。

qq_43416206的博客 3351

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的专栏 5639

水文模型大合集---SWAT模型、VIC模型、HEC-HMS模型、HSPF模型、FVCOM模型、Delft3D模型、HYPE模型.......

1.1 面源污染概要1.2 SWAT模型及应用1.3 SWAT模型原理1.4 SWAT模型输入文件1.5 ArcGIS与SWAT关系。

jwwkyjspt的博客 4362

人工智能训练师认证教程(5)使用MONAI进行医学影像分析的完整指南

本文介绍了使用MONAI框架进行医学影像分析的全流程。首先详细说明了环境搭建步骤,包括PyTorch和MONAI的安装配置。然后以肺部CT 3D分割为例,分步骤讲解了数据准备与预处理、3D UNet模型构建、训练配置(DiceLoss损失函数、Adam优化器等)以及训练验证循环的实现。文章还包含推理可视化方法和模型导出为ONNX格式的部署方案,并强调了医学影像分析中的数据格式适配、强度归一化、显存优化等关键注意事项。最后指出MONAI的医学专用组件可大幅简化开发流程,建议后续可探索SwinUNETR等进阶方

华为开发者布道师,天府英才计划,致力于大数据+AI 的应用创新,助力企业与个人AI创新赋能。 1214

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

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

javazhuanzai的专栏 640

vesta软件_分子动力学计算实战:利用 OVITO 软件找弗伦克尔缺陷和位错环分析

今天继续和大家分享这篇纯分子动力学(MD)的 Nat. Comm. 文章(DOI:10.1038/s41467-018-07102-3)。上期推文(从一篇 Nat. Comm. 学习经典分子动力学基本知识和相关软件基本操作 (一)),我们借用该文章的 fig.1 简单介绍了如何用文中所提到的 LAMMPS 软件来实现材料中级联碰撞过程。但是,想完整的展示类似该文章的 fig.1,单纯利用...

weixin_39524842的博客 5983

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的博客 227

通过WorkVisual连接KUKA机器人的具体方法

通过WorkVisual连接KUKA机器人的具体方法

Robot_PLC_HMI_Automation 6849

【45】软考软件设计师——易错题TOP50精讲|陷阱解析+避坑技巧 错题本(含对比表)

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第45篇,属于**模块六:冲刺与模拟**第二篇,聚焦软考高频易错题,精选50道经典陷阱题,覆盖数据结构、面向对象、设计模式、软件工程、数据库、计算机网络、操作系统七大核心模块。全文采用“错题题干+易错选项+错误原因+正确解析+避坑技巧”的错题本形式,深度拆解重载/重写、聚合/组合、DFS/BFS、排序稳定性等12组易混淆概念,配套对比表、记忆口诀强化区分,彻底解决考生“概念记混、审题不清、陷阱踩中”三大失分痛点,帮助考生建立“错题→解析→规律→规避”

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 529

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

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

htits2008的专栏 1454

基于 STM32 的智慧图书馆智能控制系统设计与实现

智慧图书馆智能控制系统集成环境调控、安全监控、借阅管理与信息推送功能,通过 STM32 主控芯片联动传感器、执行器及云平台,实现图书馆智能化管理。系统架构分为感知层(传感器)、控制层(STM32 主控)、执行层(继电器 / 显示屏)及云端层(数据交互),支持温度自动调节、灯光自控、火情安防监控、天气推送及 RFID 借还书管理。本系统通过 STM32 实现多传感器融合与设备控制,结合 RFID 与云平台技术,构建了集环境智能调控、安全监控、便捷借阅于一体的智慧图书馆解决方案。

weixin_42300449的博客 2208

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

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

weixin_39906499的博客 632

YOLO26涨点改进 | 全网独家创新!注意力改进篇 | CVPR 2025 | 引入RALA秩增强线性注意力模块,含多种创新改进,助力YOLO26适合目标检测、图像分割、图像分类有效涨点

🔥本文给大家介绍使用RALA模块改进YOLO26可以显著提升其性能,尤其在复杂场景和小物体检测中。通过增强线性注意力机制的矩阵秩,RALA改善了模型对空间信息的建模能力,提升了特征的多样性和全局信息的融合,进而提高了检测精度。同时,RALA保持了线性复杂度,避免了Softmax注意力的高计算成本,使YOLO26在实时检测任务中既能保持高效计算,又能提高检测精度,尤其是在小物体和遮挡物体的检测中表现突出。🔥欢迎订阅我的专栏、带你学习使用最新-最前沿-独家YOLO26创新改进!

Ai缝合怪、助力小伙伴高效发论文 145

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Delphi下WebBrowser应用示例

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

weixin_34004750的博客 157

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

用DELPHI实现网页的自动填充

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

u011354184的专栏 2569

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

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

☆永遠☆的专栏 1236

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的博客 351

Delphi : WebBrowser、MSHTML在Delphi中的使用

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

u010569495的专栏 971

【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...

阳光有点冷 1392

手把手教你从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的博客 6654

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

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

2844

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

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

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 2748
上一篇: WebBrowser的用法
下一篇: WebBrowser如何处理弹出信息框
iseekcode
博客等级 码龄18年 36粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值