 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
informacaoweed Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013 Mensagens: 268 Localização: Porto Alegre / RS
|
Enviada: Qui Nov 07, 2013 3:57 pm Assunto: Inserindo dados em uma página HTML |
|
|
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 |
|
 |
GustavoToyota Profissional


Registrado: Domingo, 9 de Outubro de 2011 Mensagens: 605 Localização: Sorocaba - SP
|
Enviada: Sex Nov 08, 2013 12:44 pm Assunto: Re: Inserindo dados em uma página HTML |
|
|
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 |
|
 |
informacaoweed Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013 Mensagens: 268 Localização: Porto Alegre / RS
|
Enviada: Qui Nov 14, 2013 2:51 pm Assunto: |
|
|
Ainda não consegui, velho.
Vou pesquisando.. |
|
Voltar ao Topo |
|
 |
informacaoweed Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013 Mensagens: 268 Localização: Porto Alegre / RS
|
Enviada: Seg Nov 18, 2013 9:30 am Assunto: |
|
|
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 |
|
 |
CesarRocha Mestre

Registrado: Segunda-Feira, 30 de Mai de 2011 Mensagens: 794 Localização: São Paulo - SP
|
Enviada: Seg Nov 18, 2013 10:23 am Assunto: |
|
|
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 |
|
 |
informacaoweed Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013 Mensagens: 268 Localização: Porto Alegre / RS
|
Enviada: Seg Nov 18, 2013 11:04 am Assunto: |
|
|
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 |
|
 |
informacaoweed Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013 Mensagens: 268 Localização: Porto Alegre / RS
|
Enviada: Seg Nov 18, 2013 11:09 am Assunto: Re: Inserindo dados em uma página HTML |
|
|
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 |
|
 |
CesarRocha Mestre

Registrado: Segunda-Feira, 30 de Mai de 2011 Mensagens: 794 Localização: São Paulo - SP
|
Enviada: Seg Nov 18, 2013 12:57 pm Assunto: |
|
|
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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|