delphi中使用webbrowser提交表单

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

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

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

<formname="f"action="">

<input type="text"name="wd">

<inputtype="submit"value="百度一下" ></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方法提交。