• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphi操作TWebBrowser实现自动填表(JQuery脚本与OleVariant方法)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphi调用webservice发布时间:2022-07-18
下一篇:
DELPHI读取网页源文件和获取字符串发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap