版本: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

最新文章

  1. iis 使用 LocalDB 报错:provider: SQL Network Interfaces, error: 50
  2. MySQL初始配置
  3. /etc/passwd&amp;/etc/shadow文件分析
  4. 【Beta】Scrum02
  5. linux kernel input 子系统分析
  6. powershell中的两只爬虫
  7. spring事务与消息队列
  8. UIEdgeInsetsMake, CGRectOffset等API参数详解
  9. Objective C 基础
  10. C++实现数字媒体三维图像渲染
  11. Android 开机默认横竖屏
  12. Spark的几种运行模式
  13. postgresql的/d命令
  14. Nagios设置只监控不报警
  15. 一致性hash
  16. Task的异步模式
  17. Ajax请求访问action推断文件是否存在
  18. 个人-GIT使用方法
  19. vue-cli webpack3扩展多模块打包
  20. ORACLE数据库找回用户密码

热门文章

  1. Azure上A/D系列虚拟机到DS系列迁移(2)
  2. HTML条件注释用法诠释
  3. jquery.sortable.js源代码解读
  4. arcgis api for silverlight使用google map等多个在线地图
  5. button元素兼容问题浅析
  6. java各公司笔试题集1
  7. scrollTo和scrollTo.js
  8. swift中通知的使用
  9. UBUNTU系统常用基本命令
  10. 动态加载Ribbon功能区