您的位置:首页 > Web前端 > HTML

利用WebBrowser自动填写网页上的表单

2018-02-24 17:03 267 查看
procedure TForm1.db_writeClick(Sender: TObject);
var
o:oleVariant;
err,js:string;
i:integer;
const
mz:array[1..51] of string=('汉族','蒙古族','回族','藏族','维吾尔族','苗族','彝族','壮族','布依族',
'朝鲜族','满族','侗族','瑶族','白族','土家族','哈尼族','哈萨克族','傣族','黎族','傈僳族','佤族',
'畲族','高山族','拉祜族','水族','东乡族','纳西族','景颇族','柯尔克孜族','土族','达斡尔族','仫佬族',
'锡伯族','阿昌族','普米族','塔吉克族','怒族','乌孜别克族','俄罗斯族','鄂温克族','德昂族','保安族',
'裕固族','京族','塔塔尔族','独龙族','鄂伦春族','赫哲族','门巴族','珞巴族','基诺族');
begin

{o:=WebBrowser1.OleObject.document.all.item('loginname',0);
o.value := '370212B100010022';
o:=WebBrowser1.OleObject.document.all.item('password',0);
o.value := 'mw@123';  }
//健康档案
try
if db_addcode.Text<>'' then
begin
//街道
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.getelementbyID('dJd');
o.value:=copy(db_addcode.Text,1,6)+copy(db_addcode.Text,8,2);    //利用纸质编码,选择街道
o.fireEvent('onchange');
end;
//写入姓名
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dXm',0);
o.value := d[3];
//写入性别    男1  女2  未知性别0  不祥9
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dXb',0);
if d[4]='男' then
o.value:=1;
if d[4]='女' then
o.value:=2;
if d[4]='' then
o.value:=0;
if (d[4]<>'') and  (d[4]<>'男') and  (d[4]<>'女')  then
o.value:=9;
if fun.ValidatePID(d[6])='' then
begin
//写入证件类型  身份证1  护照2 军官证3
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dZjlx',0);
o.value := 1;
//写入身份证号
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dSfzh',0);
o.value := d[6];
end
else
begin
//写入护照号
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dZjlx',0);
o.value := 2;
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dZjhqt',0);
o.value := d[6];
err:=err+'/证件号';
end;
//写入出生日期
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dCsrq',0);
o.value := d[35];
//联系电话
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dLxdh',0);
o.value := d[37];
//常住类型  本地户籍常住1 本地户籍不常住2 外地户籍常住3 不祥4
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dJzzk',0);
o.value := 1;
//民族
if pos('族',d[34])<=0 then    //如果只写名字,加族
d[34]:=d[34]+'族';
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dMz',0);
for I := 1 to 51 do   //遍历民族
begin
if d[34]=mz[i] then
begin
o.value := i; //设置其他民族
continue;
end;
end;
//职业
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dZy',0);
o.value:=11;
//文化程度
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dWhcd',0);
o.value:=90;
//劳动强度
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('shxg.dLdqd',0);
o.value:=1;
//婚姻状况
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dHyzk',0);
o.value:=10;
//地址
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dXxdz',0);
o.value:=d[36];
//费用
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dYlfzflx',3);
o.checked:=true;
o.fireEvent('onchange');
//调查时间
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('d11',0);
o.value:=FormatdateTime('YYYY-MM-DD',now());
//联系人电话
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dLxrdh',0);
o.value:=d[41];
//联系人姓名
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.all.item('dLxrxm',0);
o.value:=d[38];
//居委会
if db_addcode.text<>'' then
begin
o := WebBrowser1.oleobject.document.documentelement.document.frames.item(0).document.getelementbyID('dJwh');
if err='' then
showmessage('填写完成,请核对后保存!')  //做延迟处理
else
showmessage('填写完成,发现问题:'+err);  //做延迟处理
o.value:=copy(db_addcode.Text,1,6)+copy(db_addcode.Text,8,length(db_addcode.Text));
o.fireEvent('onchange');   //触发onchange事件,调用js代码
end;
except
showmessage('写入表单有误,请检查页面是否为建档页面!');
end;

end;
以上例程列举了网页上常用控件的控制方法,主要思路就是获取ID,或者下拉菜单中的顺序,进行赋值。使用fireevent制造事件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HTML web 网页控制