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

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制造事件。

你可能感兴趣的:(利用WebBrowser自动填写网页上的表单)