delphi中使用webbrowser提交表单

时间:2022-10-06 13:42:59

转自:http://blog.163.com/hehaifeng1984@126/blog/static/6900113620133504644998/

 

我们以百度搜索为例,使用webbrowser组件自动在表单中填写信息,并提交出去。

首先从百度首页源代码中寻找表单信息,最关键的信息如下:

<formname="f"action="">

<input type="text"name="wd"id="kw"maxlength="100"class="s_ipt">

<inputtype="submit"value="百度一下"id="su" ></form>

   可以看到,百度的搜索表单的Name参数值是“f”,只有一个字母。而文本输入框的名字叫wd。我们只要设置wd的值就可以自动填写表单了。

   在窗体中拖一个WebBrowser组件和两个按钮组件,按钮1填写表单,按钮2提交数据,在窗口载入时打开百度首页:

procedure TForm1.FormCreate(Sender: TObject);
begin
  webbrowser1.Navigate('http://www.baidu.com');
end;


procedure TForm1.BitBtn1Click(Sender: TObject);
var  o:OleVariant;
begin
 o := WebBrowser1.OleObject.document.all.item( 'wd',0); //找到输入框
 o.value := '凌云阁';
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var o:OleVariant;
begin
  o:=WebBrowser1.oleobject.document.all.item('f',0);   //提交数据
  o.submit;
end;

上面的代码中,我们事先已经知道了表单和输入框的名字,使用WebBrowser1.OleObject.document.all.item( 'wd',0)找到输入框对象,用value方法输入数据。

由于百度的提交数据按钮没有name属性,只能利用表单的name属性,采用提交表单的方式提交。我们使用WebBrowser1.oleobject.document.all.item('f',0)找到表单对象。然后用sumit方法提交。