用TWebBrowser控件自动点击按钮问题,急!!!(200分)

  • 主题发起人 主题发起人 cgfhz
  • 开始时间 开始时间
C

cgfhz

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在TForm上用TWebBrowser写了个自动提交程序,但OnClick无效。
高分赐教~~~[:)]
代码如下:
procedure TfrmHtmlInfo.ExtractLinks(WebBrowser: TWebBrowser);
var
pDoc: IHTMLDocument2;
HtmlForms: IHTMLElementCollection;
HtmlForm: IHTMLFormElement;
FormName: string;
i, ItemIndex, ItemName: integer;
InputElement: IHTMLInputElement;
begin

try
if SUCCEEDED(WebBrowser.Document.QueryInterface(IHTMLDocument2, pDoc)) then

begin

if pDoc.title = '我的标题' then
//标题名
begin

HtmlForms := pDoc.forms;
if HtmlForms.length <= 0 then
exit;
HtmlForm := (HtmlForms.item(0, 0) as IHTMLFormElement);
FormName := trim(HtmlForm.Get_name);
if FormName = 'mei' then
//名称
begin

for I := 0 to HtmlForm.Length - 1do

begin

ItemIndex := 0;
ItemName := I;
if Supports(HtmlForm.item(ItemName, ItemIndex), IHTMLInputElement, InputElement) then

begin

if (InputElement.type_ = 'submit') and
(InputElement.value = '文本文件') then

begin

(InputElement as IHtmlElement).OnClick := OleVariant(Self as IDispatch);
break;
end;

end;

end;

end;

end;

end;

except
//
end;

end;
 
顶一下。TWebBrowser控件总是那么奇怪,我也碰到好多问题。
 
你根本就没提交啊.....
(InputElement as IHtmlElement).OnClick := OleVariant(Self as IDispatch);
这个只是把那个按钮的点击事件指向了你的form

根本没有提交操作啊...

你用这个试试
var
hel:HEL:IHTMLElement;

...

if Supports(HtmlForm.item(ItemName, ItemIndex), IHTMLInputElement, InputElement) then

begin

if (InputElement.type_ = 'submit') and
(InputElement.value = '文本文件') then

begin

if SUCCEEDED(HtmlForm.item(ItemName, ItemIndex).QueryInterface(IHTMLElement,HEL)) then

HEL.click;
//提交
{ (InputElement as IHtmlElement).OnClick := OleVariant(Self as IDispatch);}
break;
end;

end;


if SUCCEEDED(el.QueryInterface(IHTMLElement,HEL)) then

HEL.click;
 
HEL.click;
//提交


click提交和用鼠标点击来提交还是有点区别的
无奈没有相关资料
 
哦? 有区别? 这还是第一次听说.....有什么关键词可搜索没
 
呵呵 你模拟点击一个链接就明白了
 
点过啊 没什么区别 这样的代码一直在用啊

如果说有区别....唯一的区别是焦点不在按钮上
 
后退
顶部