WebBrowser delphi inserir valor automatico...

Delphi

17/09/2012

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

Curtidas 0

Respostas

Alisson Santos

Alisson Santos

17/09/2012

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.
GOSTEI 0
Darcio Junior

Darcio Junior

17/09/2012

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...
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

17/09/2012

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
GOSTEI 0
Alisson Santos

Alisson Santos

17/09/2012

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.
GOSTEI 0
Darcio Junior

Darcio Junior

17/09/2012

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...
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

17/09/2012

Alisson, os testes que você fez foi com o site que o Drcio passou? Se sim, poderia compartilhar?
GOSTEI 0
Anderson Ramos

Anderson Ramos

17/09/2012

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;
GOSTEI 0
POSTAR