Fórum WebBrowser delphi inserir valor automatico... #423813

17/09/2012

0

Olá tenho um webbrowser detro de uma aplicação, e a mesma recebe por parametro o nº de cnpj que sera consultado, porém não consigo fazer com que esse nº entre automaticamente no campo a ser preenchido,no momento meu codigo está assim:

Web.OleObject.Document.GetElementByID('cnpj').Value := '01234567891011';


O site é : http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao.asp e deve preencher o campo citado como CNPJ,não seria apenas pegar o name do TD do html e mandar o browser alimentar?

Grato
Darcio Junior

Darcio Junior

Responder

Posts

17/09/2012

Alisson Santos

Acho que seria mais facil você pegar esse valor que retorna no html e jogar em uma variavel string e depois passar esse valor para o seu campo.
Pois acho que ele não está buscando corretamente os dados que deseja.
Responder

Gostei + 0

18/09/2012

Darcio Junior

Mais como eu faria para pegar o valor do html e joga-lo lá? Pois o meu problema é que ele basicamente não está identificando o campo que estou passando...
Responder

Gostei + 0

18/09/2012

Joel Rodrigues

Cara, eu estava tentando fazer uns testes aqui mas acabei ficando sem tempo. Veja se esse link pode lhe ajudar: http://delphi.about.com/od/twebbrowser/a/submit_web_form.htm
Responder

Gostei + 0

18/09/2012

Alisson Santos

Darcio eu fiz uns testes aqui com o que o joel falou, vai atender você tranquilamente.
Só modificar o tipo de campo e o retorno que vai ter.
Responder

Gostei + 0

19/09/2012

Darcio Junior

Eu tentei me basear no exemplo passado, porém la não vi uma maneira efetiva de fazer o que quero...
Afinal já sei o campo a ser preenchido e tudo, porém tentei executar assim:
web.OleObject.Document.getElementById('theForm').cnpj := '012345678910';


Precisava conseguir executar o Document.getElementById('theForm').cnpj = '012345678910' para que ele simplesmente entrasse com o valor no campo,para o usuario não precisar digitar já que é algo parametrizado, pelo exemplo vi que daria pra identificar os campos mais é algo que fugiria da minha necessidade, pois no site [url]http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao.asp[/url] só preciso prencher o CNPJ,depois o usuario faz o captha na mão e segue na pagina...
Responder

Gostei + 0

19/09/2012

Joel Rodrigues

Alisson, os testes que você fez foi com o site que o Drcio passou? Se sim, poderia compartilhar?
Responder

Gostei + 0

12/03/2014

Anderson Ramos

Da uma olhada neste código, funciona muito bem no seu caso...



procedure trataPagina;
Var
Document : IHTMLDocument2;
FormItem: Variant;
Field: Variant;
FieldName: String;
I,J: Integer;
begin
Document := form24.webBrowser1.Document as IHTMLDocument2;

if form24.webbrowser1.OleObject.document.all.tags('FORM').Length = 0 then
Exit;

for I := 0 to form24.webbrowser1.OleObject.document.forms.Length - 1 do
begin
FormItem := form24.webbrowser1.OleObject.document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
try
//Identifica o campo e seu nome no formulário
Field := FormItem.Item(j);

FieldName := Field.Name;



if FieldName = 'origem' then //tem que ser o nome do campo que esta dentro do Código fonte da pagina.
Field.Value := edit1.text;



except
end;
end;

end;



procedure TForm24.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
tratapagina;

end;
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar