webbroswer 如何控制 网页qt点击按钮弹出新窗口确定后 跳出的窗口中的按钮

5982人阅读
delphi之模拟点击网页中的按钮
有三种方法来提交
1、假如知道按钮名称
上面代码中有 这样的代码name=”btnLogin” ,表明此按钮名称为 btnlogin
程序代码就可以 这样来模拟
wb1.OleObject.document.all.item(‘btnLogin’).
2、假如知道按钮id
上面代码中有 这样的代码 id=”btnLogin” ,表明此按钮id为 btnlogin
程序代码可以 这样来模拟
wb1.OleObject.document.getElementByIdx_x(‘btnLogin’).
3、假如名称及ID都没有,就只能判断这个提交按钮是第几个了]
按照登录页面源码来分析应当是第八个按钮,按以下语句即可实现登录按钮点击事件.
wb1.OleObject.document.getElementsByTagName_r(‘input’).item(7).
procedure TForm1.btn1Click(Sender: TObject);
& wb1.Navigate('/login.aspx');
procedure TForm1.btnloginClick(Sender: TObject);
& Doc: IHTMLDocument2;
& userinputelement, pwdinputelement:
& doc := wb1.document as ihtmldocument2;
& userinputelement := (doc.all.item('tbUserName', 0) as ihtmlinputelement);
& userinputelement.value := Trim(edt1.Text);
& pwdinputelement := (doc.all.item('tbPassword', 0) as ihtmlinputelement);
& pwdinputelement.value := Trim(edt2.Text);
&下面三种都可以,自己测试
& a.按按钮名称来点击
& wb1.OleObject.document.all.item('btnLogin').
& b.按钮钮ID来点击
&& wb1.OleObject.document.getElementByIdx_x('btnLogin').
& c.按第几个按钮来点击
& wb1.OleObject.document.getElementsByTagName_r('input').item(7).
最后一种,没有ID ,name,也不知道Tag值,点击指定文字超链接可以通过下面方法:
&& for i := 0 to WebBrowser1.OleObject.document.links.Length - 1 do
&&&& memo1.Lines.add(WebBrowser1.OleObject.document.links.item(i).href); //链接
&&&& memo1.Lines.add(WebBrowser1.OleObject.document.links.item(i).innerText) //链接名称
procedure TForm1.Button2Click(Sender: TObject);
& doc:IHTMLDocument2;
& all:IHTMLElementC
& item:OleV
& doc:=self.WebBrowser1.Document as IHTMLDocument2;
& all:=doc.
& sum:=all.
& for i:=0 to sum-1 do
&&& item:=all.item(i,varEmpty);
&&& memo1.Lines.Add(item.href);& //取链接(URL)&&&
&&& memo1.Lines.Add(item.innerText);& //取链接名称&
&&& memo1.Lines.Add(item.outerHTML);& //取链接源代码
&&& memo1.Lines.Add(item.id);& //链接ID
&&& memo1.Lines.Add(item.tagName);& //链接标签名
procedure TForm1.Button1Click(Sender: TObject);
& doc: IHTMLDocument2;
& all: IHTMLElementC
& item: OleV
& doc := self.WebBrowser1.Document as IHTMLDocument2;
& all := doc.
& sum := all.
& for i:=0 to sum-1 do
&&& item := all.item(i,varEmpty);
&&& if item.innerText = '工商银行' then&&&&&&&&&&&& &//
&&&&& item.
&&&&& //WebBrowser2.Navigate(item.href);
类似的可以看这篇文章:[delphi实现自动填写表单和调用网页上的函数]
unit Unit1;
& Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
& Dialogs, StdCtrls, OleCtrls, SHDocVw;
& TForm1 = class(TForm)
&&& WebBrowser1: TWebB
&&& Button1: TB
&&& Button2: TB
&&& Button3: TB
&&& Button4: TB
&&& procedure FormCreate(Sender: TObject);
&&& procedure Button1Click(Sender: TObject);
&&& procedure Button4Click(Sender: TObject);
&&& procedure Button2Click(Sender: TObject);
&&& procedure Button3Click(Sender: TObject);
& Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
& WebBrowser1.Align := alT
& Button2.Enabled := F
& Button3.Enabled := F
& Button4.Enabled := F
& Button1.Caption := '模拟一个页面';
& Button2.Caption := '假如知道按钮名称';
& Button3.Caption := '假如知道按钮的 ID';
& Button4.Caption := '假如只知道是第几个按钮';
{模拟一个页面}
procedure TForm1.Button1Click(Sender: TObject);
& WebBrowser1.Navigate(
&&& 'about:&head&&title&标题&/title&&body&' +
&&& '&form method=&POST& action=&http://www.nobird.org/&&' +
&&& '&input type=&submit& value=&提交& id=&btnID& name=&btnName&&' +
&&& '&/form&&/body&');
& Button2.Enabled := T
& Button3.Enabled := T
& Button4.Enabled := T
{假如知道按钮名称, 譬如是: btnName}
procedure TForm1.Button2Click(Sender: TObject);
& WebBrowser1.OleObject.document.all.item('btnName').
& //WebBrowser1.OleObject.document.all.item('btnName', 0).
& FormCreate(nil);
{假如知道按钮的 ID, 譬如是: btnID}
procedure TForm1.Button3Click(Sender: TObject);
& WebBrowser1.OleObject.document.getElementByID('btnID').
& FormCreate(nil);
{假如只知道是第几个按钮, 譬如是第一个}
procedure TForm1.Button4Click(Sender: TObject);
& WebBrowser1.OleObject.document.getElementsByTagName('input').item(0).
& FormCreate(nil);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:835570次
积分:10584
积分:10584
排名:第1246名
原创:151篇
转载:490篇
评论:45条
(1)(1)(4)(2)(11)(4)(4)(1)(1)(2)(2)(5)(3)(3)(4)(14)(1)(4)(4)(5)(4)(6)(2)(6)(4)(5)(7)(4)(8)(2)(4)(17)(16)(7)(20)(8)(16)(18)(20)(7)(23)(15)(18)(3)(18)(23)(16)(11)(14)(18)(6)(3)(9)(20)(54)(8)(2)(100)(2)(1)(11)(14)(1)(1)(7)(1)(3)(1)本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 qt点击按钮弹出新窗口 的文章

 

随机推荐