版本: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. JS编码解码详解

    今天在整理 js编码解码方法时,在网上搜资料,发现一篇文章讲的不错,讲解的非常简单明了,于是乎就想转载过来,却发现无法转载到博客园,最后只能卑鄙的摘抄过来.js编码解码就是将一些对URL和数据库敏感的 ...

  2. 使用Calendar增加日期

    /** * @Description: 当前日期加上n个月返回long date */ public static long getLongDateAddMonth(int n){ Calendar ...

  3. Merge Two Sorted Lists 解答

    Question Merge two sorted linked lists and return it as a new list. The new list should be made by s ...

  4. 【HDU 5510 Bazinga】字符串

    2015沈阳区域赛现场赛第2题 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510 题意:给定一个由字符串组成的序列,一共n个元素,每个元素是一个不 ...

  5. Spring的MethodInvokingFactoryBean

    通过MethodInvokingFactoryBean 可以向某静态方法注入参数. 如: <bean class="org.springframework.beans.factory. ...

  6. 算法设计手冊(第2版)读书笔记, Springer - The Algorithm Design Manual, 2ed Steven S.Skiena 2008

    The Algorithm Design Manual, 2ed 跳转至: 导航. 搜索 Springer - The Algorithm Design Manual, 2ed Steven S.Sk ...

  7. Swift观察者模式

    用swift写一个观察者模式,集合了swift语言中类,数组,协议,方法,字符串,条件控制语句等一些语法.简单介绍下观察者模式,在观察者模式中,会改变的是主题的状态以及观察者的数目.用这个模式,可以改 ...

  8. nth-child和nth-of-type的区别

    以前一般都用:nth-child,后来知道了:nth-of-type,然后就一般用nth-of-type 它们两有什么区别呢? 首先来看个现象: 假如有这样一个HTML结构 <div class ...

  9. ASP.net+SQL server2008简单的数据库增删改查 VS2012

    工具:VS2012 数据库:SQL server 简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册.登录.查询.修改.删除功能,多数参考了网上的代码 百度云源代码连接t ...

  10. Letter of inquiry about employment possibilities, e-mail version

    Subject: (logical to recipient!) Inquiry about software engineering position after completion of M.S ...