版本:DELPHI XE8

操作交通银行信用卡申请表单(2016-03-23),网址如下:

https://creditcardapp.bankcomm.com/applynew/front/apply/new/identity.html

本次操作的难点是“省份”与“城市”这两个<select>标签,当选择了“省份”时,“城市”会自动变更。

但,用普通的方法去改变“省份”的值,不能触发“城市”自动更新事件。

经过尝试,发现用JQUERY脚本可以达到效果。代码如下:

var
BDoc: IHTMLDocument2; //需要 USES MSHTML
sJs1: string;
sJs2: string;
begin
BDoc := WebBrowser1.Document as IHTMLDocument2; sJs1 := '$("#mrm_ddlProvince").find("option").eq(14).attr("selected","selected");';
sJs1 := sJs1 + '$("#mrm_ddlProvince").find("option").eq(14).change();'; sJs2 := '$("#mrm_ddlCity").find("option").eq(3).attr("selected","selected");';
sJs2 := sJs2 + '$("#mrm_ddlCity").find("option").eq(3).change();'; BDoc.parentWindow.execScript(sJs1, 'JavaScript');
BDoc.parentWindow.execScript(sJs2, 'JavaScript'); end;

另外,再介绍一种操作网页元素的方法。

var
BDoc: IHTMLDocument2;
e: OleVariant;
s: string;
begin
BDoc := WebBrowser1.Document as IHTMLDocument2;
e := BDoc.all.item('元素的ID', 0); // 假设此元素是一个 </A>标签
s := e.href; //这个是强制取 href 这个属性的值,也可以是一个函数,当然你也可以胡乱写一个,编译时是不会出错的。
// 当 IHTMLELEMENT 没有定义这些元素时,就可以用此“万能”方法。
ShowMessage(s);
e.href:='www.xxx.com'; //你也可以给 href 赋值
end;

TWebBrowser 与 IE 同为一源,如果不追求集成效果,也可以直接去操作IE,只需要事先获取到IE页面的 IHTMLDocumnet2 接口就可以了。

http://www.cnblogs.com/lackey/p/5310212.html

delphi 操作 TWebBrowser 实现自动填表(JQuery脚本与 OleVariant 方法)的更多相关文章

  1. 【转】第5篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+委托回调方法分析

    作者: 牛A与牛C之间 时间: 2013-11-19 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第5篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  2. 黄聪:WebBrowser执行和安装jQuery脚本(IEBrowse)

    上一文章说明了如何让 js 脚本访问 .NET 中的类, 这次希望给大家说明一下在任意页面中安装 jQuery 脚本, 并操作页面上的元素. 其实在第一篇关于 IEBrowser 的文章当中, 已经有 ...

  3. 自动监控tomcat脚本并且执行重启操作

    #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # author:reed # date:// # 定义环境变量 MYPATH=/usr/local/jdk/bin exp ...

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

    webbrowser轻松实现自动填表 步骤如下:  第一步:获取网页 调用Webbrowser 的Navigate系列函数.等待网页装载完成,得到document对象. 在调用 webBrowser. ...

  5. delphi操作xml学习笔记 之一 入门必读

    Delphi 对XML的支持---TXMLDocument类       Delphi7 支持对XML文档的操作,可以通过TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocum ...

  6. 速成KeePass全局自动填表登录QQ与迅雷(包括中文输入法状态时用中文用户名一键登录)

    原文:http://bbs.kafan.cn/thread-1637531-1-1.html 使用目的:1 网页和本地客户端登录一站式解决2 通过KeePss修改密码和登录更方便,可以复制粘贴,省了输 ...

  7. Selenium2学习-014-WebUI自动化实战实例-012-Selenium 操作下拉列表实例-div+{js|jquery}

    之前已经讲过了 Selenium 操作 Select 实现的下拉列表:Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select,但是在实际的日 ...

  8. 【转】第6篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+自动反射方法分析

    作者: 牛A与牛C之间 时间: 2013-11-21 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第6篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  9. linux中FTP自动备份VPS脚本

    服务器多了,网站也越来越多,总觉得不整个备份心里放不下心,并且有好几次rm的操作失误,造成难以挽回的损失.并且大多数的VPS提供商是不提供自动备份功能或者此功能收费价格略高.所以自己还是有必要把这个工 ...

随机推荐

  1. C++----练习--引用头文件

    1.创建头文件和源文件 touch /tmp/tools.h touch /tmp/main.cpp 2.各文件的内容如下: tools.h #include<iostream> void ...

  2. 用lsb_release -a 查看linux版本

    1.要通过yum 安装上这个命令的软件包 yum -y install redhat-lsb 2.lsb_release -a 查看linux版本信息

  3. c#POST请求和接收post请求

    c# post请求发送数据 /// <summary> /// POST请求 /// </summary> /// <param name="url" ...

  4. A Distributed Multichannel MAC Protocol for Multihop Cognitive Radio Networks

    2010 这个呢,就是time slotted的DSA网络MAC层协议. 跟上一篇单纯的Multi Channel实现类似,不过这里是CR网络,因为多了嗅探等操作. 简单的说,time slotted ...

  5. Mysql基础教程——mysql之一

    教程列表:http://www.dxzy163.com/view/index7627.html 41 存储过程 40 全文索引与停止词 39 索引的管 38 索引概念 37 数据库备份与恢复 36 事 ...

  6. C# Directory类

    Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多个目录. 2.Dele ...

  7. JS代码混淆 支持PHP .NET PERL

    官方  http://dean.edwards.name/packer/ Also available as .NET, perl and PHP applications. .NET实例下载地址:h ...

  8. redhat6.3 64位更新源(使用网易源)全过程记录

    本篇博客参考:http://chinaxiaoyu.diandian.com/post/2013-01-24/40046529897.首先在浏览器中输入http://tel.mirrors.163.c ...

  9. spring管理hibernate4 transaction getCurrentSession为什么报错?

    hibernate4不支持你用hibernate3的 getcurrentSession,建议你用openSession

  10. zoj 3471 Most Powerful(状态压缩dp)

    Recently, researchers on Mars have discovered N powerful atoms. All of them are different. These ato ...