ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Inserindo dados em uma página HTML

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
informacaoweed
Aprendiz
Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013
Mensagens: 268
Localização: Porto Alegre / RS

MensagemEnviada: Qui Nov 07, 2013 3:57 pm    Assunto: Inserindo dados em uma página HTML Responder com Citação

Estou precisando manipular uma página HTML, só que via código, eu carrego ela em um TWebBrowser mas o usuário não vai nem visualizar esta página, faço tudo por baixo dos panos, para que os dados sejam apresentados diretamente no sistema..

Encontrei este artigo que me deu os 2 comandos que eu precisava (por hora, pelo menos), que são:

-inserir dados em uma caixa de texto.
-clicar no botão "pesquisar" de uma certa página.
-(depois vou precisar ler os resultados e jogar no meu sistema, heheh)

tá, mais voltando, o artigo é o seguinte:
http://blog.fullsig.com.br/?p=25

Só que eu so consigo digitar o comando de inserção até
WebBrowser1.OleObject
ou então consigo:
WebBrowser.Document

Mas WebBrowser1.OleObject.Document o meu delphi não reconhece.

Uso o delphi XE.

mas mesmo o delphi não reconhecendo (aparentemente) o comando inteiro:
WebBrowser.OleObject.Document.All.Item('numero',0).Value
quando eu compilo, a compilação não gera erro nenhum. só dá erro de exceção quando o comando é executado.
_________________
Aguarde... nossa Evolução está sendo processada.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
GustavoToyota
Profissional
Profissional


Registrado: Domingo, 9 de Outubro de 2011
Mensagens: 605
Localização: Sorocaba - SP

MensagemEnviada: Sex Nov 08, 2013 12:44 pm    Assunto: Re: Inserindo dados em uma página HTML Responder com Citação

informacaoweed escreveu:
Mas WebBrowser1.OleObject.Document o meu delphi não reconhece.

Uso o delphi XE.

mas mesmo o delphi não reconhecendo (aparentemente) o comando inteiro:
WebBrowser.OleObject.Document.All.Item('numero',0).Value
quando eu compilo, a compilação não gera erro nenhum. só dá erro de exceção quando o comando é executado.

Isso se chama OLE Automation.
Tudo que estiver na frente do WebBrowser.OleObject é considerado JavaScript.
E já que o Code Completion do Delphi foi feito para a linguagem Delphi, ele não reconhece os comandos do JavaScript.

Acredito que dá erro por causa dessa parte:
Citação:
WebBrowser.OleObject.Document.All.Item('numero',0).Value

O segundo parâmetro não existe de acordo com essa página:
http://www.java2s.com/Tutorial/JavaScript/0280__Document/documentallitem.htm
Tente assim:
Código:
WebBrowser.OleObject.Document.All.Item('numero').Value

Ou assim:
Código:
WebBrowser.OleObject.Document.All.Item('numero')[0].Value


Abraços.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
informacaoweed
Aprendiz
Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013
Mensagens: 268
Localização: Porto Alegre / RS

MensagemEnviada: Qui Nov 14, 2013 2:51 pm    Assunto: Responder com Citação

Ainda não consegui, velho.

Vou pesquisando..
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
informacaoweed
Aprendiz
Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013
Mensagens: 268
Localização: Porto Alegre / RS

MensagemEnviada: Seg Nov 18, 2013 9:30 am    Assunto: Responder com Citação

tá difícil.

A página que estou tentando é a esta:
[urlhttp://www.stf.jus.br/portal/processo/pesquisarProcesso.asp[/url]

Estou tentando inserir os dados nestas 2 caixas de diálogo e clicar no botão "pesquisar".

Eu gostaria que quem sabe possa me orientar, mas seria ótimo que alguém que conhece algum curso, tutorial, ou e-book possa me indicar. Em minhas pesquisas, nada encontrei
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CesarRocha
Mestre
Mestre


Registrado: Segunda-Feira, 30 de Mai de 2011
Mensagens: 794
Localização: São Paulo - SP

MensagemEnviada: Seg Nov 18, 2013 10:23 am    Assunto: Responder com Citação

informacaoweed escreveu:
tá difícil.

A página que estou tentando é a esta:
[urlhttp://www.stf.jus.br/portal/processo/pesquisarProcesso.asp[/url]

Estou tentando inserir os dados nestas 2 caixas de diálogo e clicar no botão "pesquisar".

Eu gostaria que quem sabe possa me orientar, mas seria ótimo que alguém que conhece algum curso, tutorial, ou e-book possa me indicar. Em minhas pesquisas, nada encontrei


Dê uma olhada nos dados que são passados ao pressionar "pesquisar" você consegue "ver" utilizando um web debugger, recomendo o Fiddler.

O post vai para esse link http://www.stf.jus.br/portal/processo/verProcessoAndamento.asp passando 3 variáveis: "dropmsgoption":"1", "partesAdvogadosRadio":"1", "numero":"ADI 800".

Você pode alterar o código pra fazer chamada direta com um post ou usar webbrowser, porém deve passar todas as variáveis necessárias.

Além disso você checou o que o GustavoToyota postou? Sua sintaxe estava errada...

~
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
informacaoweed
Aprendiz
Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013
Mensagens: 268
Localização: Porto Alegre / RS

MensagemEnviada: Seg Nov 18, 2013 11:04 am    Assunto: Responder com Citação

CesarRocha escreveu:
Você pode alterar o código pra fazer chamada direta com um post ou usar webbrowser, porém deve passar todas as variáveis necessárias.

Eu sei muito pouco sobre o tema, mas se entendi, quer dizer que os componentes que quero setar estão dentro de outros, e preciso ir de um em um, isto é, como ao acessar um diretório, devemos informar o caminho inteiro, não só o nome da pasta que queremos, mas todas as pastas que levam até ela.
Procede?

CesarRocha escreveu:
Além disso você checou o que o GustavoToyota postou? Sua sintaxe estava errada...


Sim testei, na verdade funciona das 2 mandeiras, com o parâmetro 0 e sem ele como sugeriu o amigo GustavoToyota. Testando com o site da hotmail, como no mini-tutorial o comando insere o valor nas caixas de login e senha corretamente. É uma página simples, com alguns dizeres da hotmail e as ditas caixas.
_________________
Aguarde... nossa Evolução está sendo processada.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
informacaoweed
Aprendiz
Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013
Mensagens: 268
Localização: Porto Alegre / RS

MensagemEnviada: Seg Nov 18, 2013 11:09 am    Assunto: Re: Inserindo dados em uma página HTML Responder com Citação

GustavoToyota escreveu:
informacaoweed escreveu:
Mas WebBrowser1.OleObject.Document o meu delphi não reconhece.

Uso o delphi XE.

mas mesmo o delphi não reconhecendo (aparentemente) o comando inteiro:
WebBrowser.OleObject.Document.All.Item('numero',0).Value
quando eu compilo, a compilação não gera erro nenhum. só dá erro de exceção quando o comando é executado.

Isso se chama OLE Automation.
Tudo que estiver na frente do WebBrowser.OleObject é considerado JavaScript.
E já que o Code Completion do Delphi foi feito para a linguagem Delphi, ele não reconhece os comandos do JavaScript.

Acredito que dá erro por causa dessa parte:
Citação:
WebBrowser.OleObject.Document.All.Item('numero',0).Value

O segundo parâmetro não existe de acordo com essa página:
http://www.java2s.com/Tutorial/JavaScript/0280__Document/documentallitem.htm
Tente assim:
Código:
WebBrowser.OleObject.Document.All.Item('numero').Value

Ou assim:
Código:
WebBrowser.OleObject.Document.All.Item('numero')[0].Value


Abraços.


Obrigado, amigo, tinha esquecido de te responder.

Eu testei como disseste, e o comando conforme sugeriste (sem o 0), funciona corretamente para a página da hotmail. Para http://www.stf.jus.br/portal/processo/pesquisarProcesso.asp
Não estou consigo...
_________________
Aguarde... nossa Evolução está sendo processada.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CesarRocha
Mestre
Mestre


Registrado: Segunda-Feira, 30 de Mai de 2011
Mensagens: 794
Localização: São Paulo - SP

MensagemEnviada: Seg Nov 18, 2013 12:57 pm    Assunto: Responder com Citação

Fiz um exemplo aqui, vê se ajuda. Qualquer coisa, só adaptar para sua necessidade.

Código:
procedure TForm9.Preencher;
var
  document: IHTMLDocument3;
  element: IHtmlElement; // uses Mshtml
  input: IHTMLInputElement;
begin
  // carrego o documento em uma variavel para facilitar a manipulação
  document := WebBrowser1.Document as IHTMLDocument3;

  // procuro o elemento pelo id dentro do documento
  element := document.getElementById('numero');

  // se encontrou o elemento na pagina
  if element <> nil then
  begin
    // verifica se o objeto encontrado tem suporte a interface input
    // http://docwiki.embarcadero.com/Libraries/XE5/en/System.SysUtils.Supports

    if Supports(element, IID_IHTMLInputElement, input) then
      // altera o valor do elemento
      input.value := 'ActiveDelphi - Teste'
    else
      ShowMessage('Elemento não tem suporte a input...');
  end
  else
    ShowMessage('Id não encontrado');
end;

~bye
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB