设计一网址自动登陆,登入网址的源码显示按钮如下:
<button id="btnLogin" class="button-2" style="TEXT-ALIGN: center;" onclick="jhqy_land(1);return false;" type="button">登    录</button>我在delphi程序中引用:
 doc := UiWebBrowser1.document as ihtmldocument2;
  userinputelement := (doc.all.item('username', 0) as ihtmlinputelement);
  userinputelement.value := 'test';
  pwdinputelement := (doc.all.item('password2', 0) as ihtmlinputelement);
  pwdinputelement.value := 'test';
  UIWebBrowser1.OleObject.getElementByID('btnlogin').click;运行前面正常,最后按钮自动提交时,总是出现
method "getelementbyid" not supported by automation object请问各位高手,怎么解决登入啊

解决方案 »

  1.   

    var
    i : word;
    Docs : OleVariant;  DOcs:= WEB.OleObject.document.getElementsByTagName('button');
      for i:= 0 to docs.length-1 do
      begin
        if (docs.item(i).id='btnLogin') and (pos('登    录',docs.item(i).value)<>0) then
        begin
         docs.item(i).click;
         break;
        end;
      end;
      

  2.   

    olevariant类型在编译时delphi不检查语法,直接执行...这样用是因为getemementbyid这类函数不是delphi自带的.
      

  3.   

    还是写点代码吧,我用过的应该 OK 的:var btn : IHTMLInputButtonElement;
    btn := doc.all.item('btnLogin', 0) as IHTMLInputButtonElement;
    (btn as IHtmlElement).click;
      

  4.   

    OleObject.document.getElementByID('btnlogin').click;楼主大概不会回来了。学习楼上两位的代码了。