zoukankan      html  css  js  c++  java
  • delphi中使用webbrowser提交表单

    转自: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方法提交。

  • 相关阅读:
    Linq to OBJECT延时标准查询操作符
    LINQ to XML
    动态Linq(结合反射)
    HDU 1242 dFS 找目标最短路
    HDu1241 DFS搜索
    hdu 1224 最长路
    BOJ 2773 第K个与m互质的数
    ZOJ 2562 反素数
    2016 ccpc 杭州赛区的总结
    bfs UESTC 381 Knight and Rook
  • 原文地址:https://www.cnblogs.com/tc310/p/4708542.html
Copyright © 2011-2022 走看看