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

webbrowser + cookies


Gabriel10101

Pergunta

Olá estou usando webbrowser,e quero limprar os cookies do navegador em certa parte do código,mas não estou conseguindo,depois de muita procura achei um código mais não consegui usa-lo:

procedure DeleteCache(ACache, ACookies, AHistory:boolean);
var
 lpEntryInfo: PInternetCacheEntryInfo;
 hCacheDir: LongWord;
 dwEntrySize: LongWord;
begin
 if (not ACache) and (not ACookies) and (not AHistory) then// nothing to delete
  exit;
 dwEntrySize := 0;
 FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
 GetMem(lpEntryInfo, dwEntrySize);
 if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
 hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize); 
 if hCacheDir <> 0 then begin
   repeat
     // delete cookies
     if (ACookies and ((lpEntryInfo^.CacheEntryType and COOKIE_CACHE_ENTRY) = COOKIE_CACHE_ENTRY))
     // delete history
     or (AHistory and ((lpEntryInfo^.CacheEntryType and URLHISTORY_CACHE_ENTRY) = URLHISTORY_CACHE_ENTRY))
     // delete "normal" cache
     or (ACache and ((lpEntryInfo^.CacheEntryType and NORMAL_CACHE_ENTRY) = NORMAL_CACHE_ENTRY))
     then DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
     FreeMem(lpEntryInfo, dwEntrySize);
     dwEntrySize := 0;
     FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize);
     GetMem(lpEntryInfo, dwEntrySize);
     if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
   until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize);
 end;
 FreeMem(lpEntryInfo, dwEntrySize);
 FindCloseUrlCache(hCacheDir);
end;
Tentei:
DeleteCache(ACookies);
DeleteCache;
Se alguém poder me ajudar,fico grato. (Uso delphi 7)
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Estou tentando nessa plataforma:

https://carrinho.americanas.com.br/CustomerWeb/pages/LoginMinhaConta

Uma dúvida rápida,to usando AnsiCompareText para comprar,a pagina retorna isso:

<strong>Clique aqui para consultar pedidos anteriores. </strong>

No dephi:

erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;
Res2:= AnsiCompareText(Erro2,'Clique aqui para consultar pedidos anteriores.');
if Res2=0 then
Link para o comentário
Compartilhar em outros sites

  • 0

O id do username muda constantemente, ficando dificil pegar o valor

WebBrowser1.OleObject.Document.all.Item('5828791c-edc8-46bd-b5bf-211bd2ea1840.loginForm.username', 0).value :=

WebBrowser1.OleObject.Document.all.Item('032d5a16-b1fb-44c0-9db0-993f47b7b526.loginForm.username', 0).value :=

Não tenho conhecimento em como proceder neste caso ... teria que pesquisar mais a fundo, o que agora não tenho tempo

mas deixo 2 links que poderão ajuda-lo na pesquisa

http://robsonmagno.wordpress.com/2011/12/16/manipular-web-forms-usando-o-twebbrowser/

http://delphi.about.com/od/twebbrowser/a/submit_web_form_2.htm

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Certo vou olhar os links,e sobre minha segunda dúvida,como posso arrumar a comparação?

Pagina

<strong>Clique aqui para consultar pedidos anteriores. </strong>

No dephi:

erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;

Res2:= AnsiCompareText(Erro2,'Clique aqui para consultar pedidos anteriores.');

if Res2=0 then
Link para o comentário
Compartilhar em outros sites

  • 0

function AnsiCompareText ( const String1, String2 : string ) : Integer;

veja que a função retorna um valor inteiro

A função AnsiCompareText compara a Sequência1 e Sequência2 pela igualdade, ignorando caracteres maiusculas ou minusculas.

A forma atual seria CompareText.

begin
// Compare two obviously different strings
CompareStrings('HELLO', 'WORLD');

// Compare identical strings
CompareStrings('Hi 2 you', 'Hi 2 you');

// AnsiCompareText treats upper and lower case identically
CompareStrings('ABCdef', 'abcDEF');

// All letters follow numbers in Delphi
CompareStrings('abc', '123');
end;

// Compare two strings, and show which is bigger than the other
procedure TForm1.CompareStrings(const string1, string2: string);
var
result : Integer;
begin
// Compare some strings
result := AnsiCompareText(string1, string2);

if result < 0 then ShowMessage(string1+' < '+string2);
if result = 0 then ShowMessage(string1+' = '+string2);
if result > 0 then ShowMessage(string1+' > '+string2);
end;

HELLO < WORLD
Hi 2 you = Hi 2 you
ABCdef = abcDEF
abc > 123

OBS: se em => erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;

erro2 := <strong>Clique aqui para consultar pedidos anteriores. </strong>

Res2:= AnsiCompareText(Erro2,'Clique aqui para consultar pedidos anteriores.');

o resultado > 0

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

já se fosse

erro2 := <strong>Clique aqui para consultar pedidos anteriores. </strong>

Res2:= AnsiCompareText(Erro2,'<strong>Clique aqui para consultar pedidos anteriores. </strong>');

o resultado = 0

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Certo entendi,no caso agora eu me expliquei um pouco mal também,desculpe.Mas no caso ele só ta retornando a mensagem sem o <strong>,coloquei um showmessage ficou assim:

http://prntscr.com/4or3ad

E to usando assim:

erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;

Res2:= AnsiCompareText(Erro2,'Clique aqui para consultar pedidos anteriores.');

if Res2=0 then

Mas mesmo assim ele não reconhece que está certo....

Link para o comentário
Compartilhar em outros sites

  • 0

ok.. para evitar que no texto tenham caracteres ocultos ou espaços vazios, tente assim

Res2:= AnsiCompareText(trim(Erro2),'Clique aqui para consultar pedidos anteriores.');

ou ainda voce pode testar dessa maneira

if pos(trim(Erro2),'Clique aqui para consultar pedidos anteriores.') > 0 then

ou

if pos('anteriores',trim(Erro2)) > 0 then

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

seria o mesmo que isso

showmessage('Atenção:'+#13+'Nenhum pedido foi encontrado')

usando

function Pos(Substr: string; S: string): Integer;

voce pode procurar a qualquer substring dentro de uma string

exemplo

if pos('Atenção', 'Atenção: Nenhum pedido foi encontrado') > 0 then

if pos('Nenhum ', 'Atenção: Nenhum pedido foi encontrado') > 0 then

if pos('pedido ', 'Atenção: Nenhum pedido foi encontrado') > 0 then

if pos('foi', 'Atenção: Nenhum pedido foi encontrado') > 0 then

if pos('encontrado', 'Atenção: Nenhum pedido foi encontrado') > 0 then

OBS: se a substring for encontrada dentro da string então será retornado um valor > 0

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

O que fiz de errado nessa verificação?

erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;
Res2:= AnsiCompareText(Erro2,'Atenção:+#13+Nenhum pedido foi encontrado');

Coloquei um showmessage no OleObject ele retorna a mensagem igual da imagem,o erro está no Res2 mas não sei o porque...

Editado por Gabriel10101
Link para o comentário
Compartilhar em outros sites

  • 0

não é isso ... veja que na mensagem eu coloquei #13 para pular de linha

na mensagem que vem da pagina esse caracter é substituido por outro que fica oculto

veja esse exemplo para poder entender como fazer

usando esse endereço de navegação

https://carrinho.americanas.com.br/CustomerWeb/pages/LoginMinhaConta

o conteudo desse comando foi colocado dentro de um Edit

erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;

seria : Não é possivel a venda de ingressos à pessoa júridica

unit Unit1;

interface

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

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

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Silent := true;
WebBrowser1.Navigate('https://carrinho.americanas.com.br/CustomerWeb/pages/LoginMinhaConta');
end;

procedure TForm1.Button2Click(Sender: TObject);
var erro2 : variant; Res2 : integer; s : string;
begin
erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;
edit1.Text := erro2;
s := trim(erro2);

Res2:= AnsiCompareText(s,'Não é possivel a venda de ingressos à pessoa júridica');

if Res2 = 0 then
showmessage('Mensagem com conteudo igual');

if Res2 < 0 then
showmessage('Mensagem com conteudo diferente <');

if Res2 > 0 then
showmessage('Mensagem com conteudo diferente >');

if pos('venda',erro2) > 0 then
showmessage('Mensagem com conteudo igual');
end;

end.

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

o resultado usando AnsiCompareText será :

Mensagem com conteudo diferente >

o resultado usando Pos será :

Mensagem com conteudo igual

OBS: usando o AnsiCompareText para o conteudo de erro2 e a string 'Não é possivel a venda de ingressos à pessoa júridica'

demonstra que o conteudo de erro2 tem valores numericos entre os caracteres, mas que não aparecem

usando POS a substring venda existe dentro da string erro2

então sugiro que voce faça alguns testes como no exemplo, para ver o resultado

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Entendi por partes,mas não deu certo,bom vou mostrar o que fiz:
Pagina

 
<p>
 
<strong>Atenção: </strong>
 
Nenhum pedido foi encontrado
 
</p>
1 Tentativa usando POS:
erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;
s := trim(erro2);
Res2:= AnsiCompareText(s,'Atenção:Nenhum pedido foi encontrado');
if pos('Atenção',erro2) > 0 then
2 Tentativa usando Ansi:
erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;
s := trim(erro2);
Res2:= AnsiCompareText(s,'Atenção:Nenhum pedido foi encontrado');
if Res2 = 0 then
Nenhuma das 2 ele reconhece que a mensagem estava igual.
Editado por Gabriel10101
Link para o comentário
Compartilhar em outros sites

  • 0

1 Tentativa usando POS:

erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;
s := trim(erro2);

if pos('encontrado',s) > 0 then
showmessage('Achou o conteudo');

if pos('encontrado',s) = 0 then
showmessage('Não achou o conteudo');


2 Tentativa usando Ansi:

erro2:= WebBrowser1.OleObject.Document.All.Tags('p').Item(1).InnerText;
s := trim(erro2);
Res2:= AnsiCompareText(s,'Nenhum pedido foi encontrado');

if Res2 = 0 then
showmessage('Achou o conteudo');

if Res2 > 0 then
showmessage('Achou o conteudo diferente >');]

if Res2 < 0 then
showmessage('Achou o conteudo diferente <');

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo,Jhonas e em um caso igual esse:

Pagina:

<body>
<div id="wrapper">
<h1>Warning!</h1>
<p>The site you are attempting to browse is on a secure connection. This proxy is not on a secure connection.</p>
      <p>The target site may send sensitive data, which may be intercepted when the proxy sends it back to you.</p>
      <form action="includes/process.php" method="get">
         <input type="hidden" name="action" value="sslagree">
<input type="submit" value="Continue anyway...">
         <input type="button" value="Return to index" onclick="window.location='.';">
</form>
      <p><b>Note:</b> this warning will not appear again.</p>
</div>
</body>
Eu precisava dar um click nesse submit:
<input type="submit" value="Continue anyway...">
Como faço?
Link para o comentário
Compartilhar em outros sites

  • 0

Consegui usando o exemplo,agora usando esse exemplo aqui:

http://robsonmagno.wordpress.com/2011/12/16/manipular-web-forms-usando-o-twebbrowser/

Preciso preencher um campo,porém quero que ele procure pelo name

<input id="ap_email" name="email" value="" type="email" size="30" maxlength="128" tabindex="1" autocorrect="off" autocapitalize="off" /> 

Tipo pelo "email",mas não to conseguindo,pode me explicar um pouco como usar?

Link para o comentário
Compartilhar em outros sites

  • 0

A sim foi bobeira minha consegui,agora falando novamente sobre plataforma americanas que sempre vem com um ID e NAME diferentes.

Como posso fazer para pegar o valor depois do "input"?

<input id="431e3896-10b3-47b9-bc1d-647e8084c40b.loginForm.username" maxlength="50" name="431e3896-10b3-47b9-bc1d-647e8084c40b:username" value="" tabindex="1" class="mail required email" type="text" crmwa_forminfo="e-mail|">

No caso:

431e3896-10b3-47b9-bc1d-647e8084c40b.loginForm.username

To com uma ideia de salvar o que vem depois da ID em uma variável,e depois chamar ela para preencher o campo...Já tente todos os jeito que eu sei usando OleObject.All.Tags ou Item e não deu certo.

Link para o comentário
Compartilhar em outros sites

  • 0

voce tem que ler o conteudo da pagina e jogar em um memo que não precisa estar visivel no form

depois procurar pela string loginForm.password dentro do script que esta no memo

uma vez encontrado, voce deve pegar o numero da linha do memo para poder extrair a informação dessa linha

que devera ser algo parecido com isso

id=535602c8-3e01-4d30-bdcb-7e865080d7f7.loginForm.password class=pasw tabIndex=2

depois voce pode copiar somente o trecho que interessa e jogar em uma variavel

esse seria o id do campo senha

535602c8-3e01-4d30-bdcb-7e865080d7f7

-----------------------------------------------------------------------------------------------------------

a mesma ideia se aplica ao campo email

id=c670cb65-230e-463b-a6b4-891b61635424.loginForm.username

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi o processo,porém não sei como fazer agora,criei um memo e deixei ele invisível agora preciso jogar o código no memo4 e buscar as partes igual você falou,como faço isso?

A parte de buscar achei um código que seria parecido com o que você já citou no tópico:

if pos('http://',memo4.lines.text)> 0 then
      begin
         s :=  copy(memo4.lines.text,pos('http://',memo4.lines.text),pos('loginForm.password',memo4.lines.text)-1);
         s :=  copy(s,pos('http://',s),pos('.doc?',s)+3);
      end;
showmessage(s);
Link para o comentário
Compartilhar em outros sites

  • 0

esta seria uma maneira de fazer isso

unit UPegarHTML;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    Memo1: TMemo;
    Button2: TButton;
    procedure Buscar(WB: TWebBrowser; Text: string);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   WebBrowser1.Silent := true;
   WebBrowser1.Navigate('https://carrinho.americanas.com.br/CustomerWeb/pages/LoginMinhaConta');
end;

Procedure FindReplace (const Enc, subs: String; Var Texto:TMemo);
Var
  i, Posicao: Integer;
  Linha: string;
Begin
  For i:= 0 to Texto.Lines.count - 1 do
  begin
    Linha := Texto. Lines[i];
    Repeat
    Posicao:=Pos(Enc,Linha);
    If Posicao > 0 then
    Begin
      Delete(Linha,Posicao,Length(Enc));
      Insert(Subs,Linha,Posicao);
      Texto.Lines[i]:=Linha;
    end;
    until Posicao = 0;
  end;
end;

procedure TForm1.Buscar(WB: TWebBrowser; Text: string);
var
  tr: IHTMLTxtRange;
  documento: IHTMLDocument2;
  index: OleVariant;
  frame_dispatch: IDispatch;
  framewnd: IHTMLWindow2;
  framedoc: IHTMLDocument2;
  LineNumber : longint;
begin
  documento := WebBrowser1.Document as IHTMLDocument2;
  index := 0;
  frame_dispatch := documento.Script;
  if Assigned(frame_dispatch) then
  begin
    framewnd := frame_dispatch as IHTMLWindow2;
    framedoc := framewnd.document;
    framedoc.Get_body.Get_outerText;
   if Assigned(WB.Document) then
   begin
      // pegar o script da pagina
      tr := ((framedoc AS IHTMLDocument2).body AS IHTMLBodyElement).createTextRange;

      // limpar o memo
      memo1.Clear;

      // jogar para o memo o conteudo da pagina
      memo1.Lines.Append(tr.htmlText);

      // salvar no hd em um arquivo txt o conteudo do memo
      memo1.Lines.SaveToFile('c:\memo1.txt');

      // procurar e substituir no arquivo a string para ficar mais evidente 
      FindReplace('loginForm.username','loginForm.USERNAME',memo1);

      // pegar o numero da linha do memo onde foi encontrado a string
      LineNumber:=SendMessage(Memo1.Handle,EM_LINEFROMCHAR,memo1.Selstart,0);

      // jogar para um edit ou variavel o conteudo que interessa
      Edit1.Text := COPY(Memo1.Lines.Strings[LineNumber],4,pos('login',Memo1.Lines.Strings[LineNumber])-5);
   end;
 end;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
   Buscar(WebBrowser1,'pass');
end;

end.

o resultado no Memo

id=25a34fd7-c00a-4b7a-90a2-f4eaf5e00b01.loginForm.USERNAME
class="mail required email" tabIndex=1 maxLength=50
name=25a34fd7-c00a-4b7a-90a2-f4eaf5e00b01:username __satellite__="4"
jQuery15205411405278290993="7" crmWA_forminfo="e-mail|"> <SPAN
style="DISPLAY: none" class=icon-val>&nbsp;</SPAN> </LABEL>
<DIV class=bx-erro sizcache="0" sizset="54"><SPAN id=username.feedback
class="feedbacklabelERROR feedback"></SPAN></DIV>
<LI class=it-senha sizcache="4" sizset="260"><LABEL style="DISPLAY: block"
sizcache="0" sizset="55"><SPAN class="lbl cadast">senha na
americanas.com:</SPAN> <INPUT
id=25a34fd7-c00a-4b7a-90a2-f4eaf5e00b01.loginForm.password class=pasw tabIndex=2
value="" maxLength=16 type=password
name=25a34fd7-c00a-4b7a-90a2-f4eaf5e00b01:password __satellite__="3"

o valor no edit seria

25a34fd7-c00a-4b7a-90a2-f4eaf5e00b01

abraço



Link para o comentário
Compartilhar em outros sites

  • 0

Deu uns erros aqui que não entendi:

Linha:

procedure TForm1.Buscar(WB: TWebBrowser; Text: string);

Erro:

[Error] Unit1.pas(127): ';' expected but '.' found

Linha:

if Assigned(WB.Document) then

Erro:

[Error] Unit1.pas(145): Undeclared identifier: 'WB'

Linha:

theForm := GetFormByNumber(document, 0);

Erro:

[Error] Unit1.pas(275): Undeclared identifier: 'GetFormByNumber'
Link para o comentário
Compartilhar em outros sites

  • 0

pelo que percebi, voce esta mesclando os códigos dos exemplos no seu projeto

se voce rodar o código como te passei não vai ocorrer nenhum erro

veja se não esta esquecendo de declarar alguma uses

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, StrUtils, MSHTML;
Linha:
procedure TForm1.Buscar(WB: TWebBrowser; Text: string);
Erro:
[Error] Unit1.pas(127): ';' expected but '.' found
erro: ponto e virgula esperado mas ponto foi encontrado

no minimo erro de digitação

Linha:
if Assigned(WB.Document) then

Erro:
[Error] Unit1.pas(145): Undeclared identifier: 'WB'
erro: identificador "WB' não declarado

type
  TForm1 = class(TForm)
    Button1: TButton;
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    Memo1: TMemo;
    Button2: TButton;
    
procedure Buscar(WB: TWebBrowser; Text: string);
    
    procedure Button1Click(Sender: TObject);

a procedure deve ser declarada

Linha:
theForm := GetFormByNumber(document, 0);
Erro:
[Error] Unit1.pas(275): Undeclared identifier: 'GetFormByNumber'
erro: identificador 'GetFormByNumber' não declarado


function GetFormByNumber(document: IHTMLDocument2;
    formNumber: integer): IHTMLFormElement;
var
  forms: IHTMLElementCollection;
begin
  forms := document.Forms as IHTMLElementCollection;
  if formNumber < forms.Length then
    result := forms.Item(formNumber,'') as IHTMLFormElement
  else
    result := nil;
end;

a função tem que estar no código, acima da chamada da função

theForm := GetFormByNumber(document, 0);

OBS: se tiver duvidas quanto ao código, execute o codigo separadamente do seu projeto para ver como fuciona

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

procedure TForm1.Buscar(WB: TWebBrowser; Text: string);

na verdade, não teria a necessidade do Text, so deixei pois fazia parte de outro código que uso onde procuro por um texto especifico dentro do script

poderia ser assim

procedure TForm1.Buscar(WB: TWebBrowser);

o código dentro da procedure é para pegar o script da pagina e jogar no memo.... por isso o conteudo do memo fica grande

      // procurar e substituir no arquivo a string para ficar mais evidente 
      FindReplace('loginForm.username','loginForm.USERNAME',memo1);

esse comando é para procurar a string que eu quero dentro do script ( trocando loginForm.username por loginForm.USERNAME) dessa forma tenho certeza que encontrou o que procuro

id=25a34fd7-c00a-4b7a-90a2-f4eaf5e00b01.loginForm.USERNAME

      // pegar o numero da linha do memo onde foi encontrado a string
      LineNumber:=SendMessage(Memo1.Handle,EM_LINEFROMCHAR,memo1.Selstart,0);

uma vez que tenha sido encontrado a string que eu quero, preciso pegar o numero da linha onde a string esta para extrair a informação dessa linha ( LineNumber )

      // jogar para um edit ou variavel o conteudo que interessa
      Edit1.Text := COPY(Memo1.Lines.Strings[LineNumber],4,pos('login',Memo1.Lines.Strings[LineNumber])-5);

então somente copio a parte que interessa dessa linha, usando o comando COPY

porém no edit não tem nenhum valor fica em branco

veja se voce esta pegando a informação do memo que voce definiu

Edit1.Text := COPY(Memo1.Lines.Strings[LineNumber],4,pos('login',Memo1.Lines.Strings[LineNumber])-5);

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

não entendi, pra que esse tanto de codigo ai. Só fazer isso.

var
a: integer;
begin
for a:= 0 to nv.OleObject.document.All.Tags('input').length -1 do
begin
if (Pos('loginform.username', LowerCase(nv.OleObject.document.All.Tags('input').item(a).outerHTML))> 0) then
begin
nv.OleObject.document.All.Tags('input').item(a).value:= 'email@email.com';
end;
if (Pos('loginform.password', LowerCase(nv.OleObject.document.All.Tags('input').item(a).outerHTML))> 0) then
begin
nv.OleObject.document.All.Tags('input').item(a).value:= 'senha123';
break;
end;
end;
Editado por rafaellacerda
Link para o comentário
Compartilhar em outros sites

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
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...