Ir para conteúdo
Fórum Script Brasil
  • 0

WebBrowser - Auto preenchimento de pagina da WEB ( BOL )


Jhonas

Pergunta

vamos preencher os campos E-mail e Senha do BOL e depois clicar no botão ENTRAR

primeiro precisamos reconhecer no código da pagina os identificadores dos campos e do botão

para isso veja o código fonte da pagina do BOL - E-mail

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR...DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"/> <title>BOL Mail</title> <link rel="shortcut icon" href="http://img.bol.com.br/favicon.ico" type="image/x-icon"/> <link href="http://email.bol.uol.com.br/c/bol-mail-20130108.css" media="screen" rel="stylesheet" type="text/css"/> <script src="http://barra.bol.com.br/scripts/functions.js" type="text/javascript"></script> <script type="text/javascript" src="http://me.jsuol.com/rm/clicklogger_namespace.js"></script> <script type="text/javascript">UOLRM.check(58);</script> </head> <body class="section-ajuda area26"> <div id="all"> <script type="text/javascript" src="http://barra.bol.com.br/scripts/barra-v3.js"></script> <div id="home-content"> <h1>BOL Mail</h1> <form action="https://visitante.acesso.uol.com.br/login.html" method="post" id="fWM" class="login-form"> <input type="hidden" value="bol-default" name="skin"/> <input type="hidden" value="WEBMAIL" name="dest"/> <fieldset> <p class="fields clearfix"> <label for="user"> E-mail: </label> <input class="text-field" id="username" name="user" type="text"/> <input type="hidden" value="" name="userconcat"/> <span class="extra"> @bol.com.br </span> </p> <p class="fields clearfix"> <label for="pass"> Senha: </label> <input class="text-field" id="pass" name="pass" type="password"/> <button class="entrar" type="submit">Entrar</button> </p> </fieldset> <div id="options" class="clearfix"> <a class="linksLogin" href="https://sac.uol.com....a.html?skin=bol"><span>Esqueceu a senha?</span></a> <a class="linksLogin" href="https://sac.uol.com.br/usuario/senha.html?skin=bol"><span>Alterar senha</span></a> <a class="linksLogin" href="http://email.bol.com.br/ajuda/"><span>Ajuda</span></a> </div> </form> <div id="features"> <a href="/ajuda/" class="homepacote"> <h2>O BOL tem o melhor pacote de e-mail gr&#225;tis pra voc&#234;</h2> </a> <ul class="clearfix"> <li><a href="http://email.bol.uol.com.br/gigamail">E-mail com 6GB</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/calendario/">Calend&#225;rio com agenda</a></li> <li><a href="http://blog.bol.uol.com.br/">Blog e fotoblog</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/bandalarga/">Banda larga *</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/bate-papo-camera.jhtm">Bate-papo com c&#226;mera</a></li> <li><a href="http://email.bol.uol.com.br/ajuda/antispam/">Antispam</a></li> <li class="obs">* Exclusivo para quem tem Speedy</li> </ul> </div> <a class="signup" href="https://cadastro.uol.com.br/indexb.html?skin=bol/pf"> <span>Inscreva-se grátis!</span> </a> </div> <div id="home-links" class="flt_b"> <dl> <dt><img src="http://em.i.bol.com.br/2013/banner_bol_gigamail.png"></dt> <dd><h2>BOL Gigamail</h2> <p>Dobre o espaço do seu BOL Mail de 6GB para 12GB e guarde mais fotos vídeos e músicas</p> <a href="http://clicklogger.rm.uol.com.br/?prd=72&grp=src:10;chn:65;creative:banner_pagina_email_bol&msr=Cliques%20de%20Origem:1&oper=11&redir=http://email.bol.uol.com.br/gigamail ">Saiba mais</a> </dd> </dl> <span class="sep-v"></span> <dl> <dt><img src="http://em.i.bol.com.br/2013/banner_bol_suporte_tel.png"></dt> <dd><h2>BOL Suporte Telefônico</h2> <p>Seu canal de atendimento para tirar dúvidas sobre instalação, configuração de e-mail e modem.</p> <a href="http://clicklogger.rm.uol.com.br/?prd=71&grp=src:10;chn:65;creative:banner_pagina_email_bol&msr=Cliques%20de%20Origem:1&oper=11&redir=http://suportetelefonico.bol.uol.com.br ">Saiba mais</a> </dd> </dl> </div> <script type="text/javascript">WriteCopyBol();</script> <div class="uolhost"><a href="http://www.uolhost.com.br/hospedagem-de-sites.html" target="_blank">Hospedagem</a>: <a href="http://www.uolhost.com.br/" target="_blank">UOL Host</a></div> <script type="text/javascript" src="http://jsuol.com/c/jquery/jquery.js"></script> <script language="JavaScript" type="text/javascript" src="http://me.jsuol.com/omtr/bolemail.js"></script> <script language="JavaScript" type="text/javascript">var s_code=uol_sc.t();if(s_code){document.write(s_code);}</script> <script type="text/javascript" src="http://jsuol.com/b/ie6/ie6alert.js" charset="iso-8859-1"></script> <script type="text/javascript" src="https://simg.uol.com.br/nocache/sac/menusac.min.js"></script> </body> </html>

Campo E-mail

<input class="text-field" id="username" name="user" type="text"/>

Campo Senha

<input class="text-field" id="pass" name="pass" type="password"/>

Botão ENTRAR

<button class="entrar" type="submit">Entrar</button>

para os campos E-mail e Senha temos um identificador id="username" e id="pass"

para o botão class="entrar"

OBS: tem muitas formas de montar o código, vou passar uma delas

uma forma bem simples de preencher os campos seria:

WebBrowser1.OleObject.Document.all.Item('username', 0).value := 'treinamento@bol.com.br';

WebBrowser1.OleObject.Document.all.Item('pass', 0).value := 'senhaxyz';

já para clicar no botão, poderiamos optar pela classe ou pelo nome do elemento botão que seria BUTTON

mas como pode haver varios outros elementos na pagina, então devemos procurar o elemento que queremos

if (Elements.item(i).tagName = 'BUTTON') then

agora vamos ao código .... em um Form coloque um componente WebBrowser e 3 botões

o botão 1 sera para iniciar a navegação no Webbrowser

o botão 2 será para preencher os campos E-mail e Senha

o botão 3 será para clicar no botão ENTRAR

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
// Entrar na pagina
WebBrowser1.Navigate('http://email.bol.uol.com.br/#rmcl');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// Preencher os campos E-mail e Senha
WebBrowser1.OleObject.Document.all.Item('username', 0).value := 'meuemail@bol.com.br';
WebBrowser1.OleObject.Document.all.Item('pass', 0).value := 'minhasenha';
end;

procedure TForm1.Button3Click(Sender: TObject);
var Elements: OleVariant;
i: Integer;
begin
// Evitar erros de Scripts
WebBrowser1.Silent := true;

// Procurar pelo botão e clicar nele
Elements := WebBrowser1.OleObject.Document.forms.item(0).elements;
for i := 0 to (Elements.Length - 1) do
if (Elements.item(i).tagName = 'BUTTON') then
Elements.item(i).Click;
end;


end.

=============================================================================

agora vamos fazer de modo que eu apenas clique no botão 1 para chamar a pagina e o resto ele faça sozinho

para isso vamos usar a propriedade OnDocumentComplete do Webbrowser

onde após o carregamento da pagina, o código será automaticamente executado

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses MSHtml, ActiveX;

procedure TForm1.Button1Click(Sender: TObject);
begin
// Entrar na pagina
WebBrowser1.Navigate('http://email.bol.uol.com.br/#rmcl');
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
CurrentBrowser: IWebBrowser2;
TopBrowser: IWebBrowser2;
Document: OleVariant;
Doc3 : IHTMLDocument3;
Frm : IHtmlFormElement;

Elements: OleVariant;
i: Integer;
begin
CurrentBrowser := pDisp as IWebBrowser2;
TopBrowser := (Sender as TWebbrowser).DefaultInterface;
if Assigned(CurrentBrowser) and Assigned(TopBrowser) then
begin
if CurrentBrowser = TopBrowser then
begin
Doc3 := CurrentBrowser.Document as IHTMLDocument3;
Webbrowser1.OnDocumentComplete := nil;
Doc3.getElementById('username').setAttribute('value', 'meuemail@bol.com.br', 0);
Doc3.getElementById('pass').setAttribute('value', 'minhasenha', 0);
WebBrowser1.Silent;
Elements := WebBrowser1.OleObject.Document.forms.item(0).elements;
for i := 0 to (Elements.Length - 1) do
if (Elements.item(i).tagName = 'BUTTON') then
begin
WebBrowser1.Silent := true;
Elements.item(i).Click;
end;

end;
end;

end;

end.

===========================================================================

OBS: Existem outras formas de se fazer a mesma coisa

abraço

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...