Badboy for Life Postado Agosto 16, 2010 Denunciar Share Postado Agosto 16, 2010 Boa Noite !!Estou precisando capturar os valores do INPUT de uma pagina HTML, e não sei como fazer isto, estou usando o componente TWEBBROWSER com Delphi 2009. Se alguém puder me ajudar ficarei muito grato.Abraços e Obrigado.Osvaldo Domênico. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Agosto 17, 2010 Denunciar Share Postado Agosto 17, 2010 Tenta colocar isso num botão:ShowMessage(WebBrowser1.OleObject.Document.All.Tags('input').item('meucampo').text);P.S: mude o meucampo para seu respectivo campo input!Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jaumDoDelphi Postado Maio 26, 2011 Denunciar Share Postado Maio 26, 2011 Ola a todos, primeira mente quero pedir desculpas por Reabrir um POST meio antigo!Estou começando a utilizar este componente TWebBrowser na minha aplicacao em delphi2010.O que mais tenho no momento são duvidas.Consegui fazer um navegador baseado no IE8 e funciona bem, com funções basicas.Ate ai beleza.Passei a utiliza o TWebBrowser no meu programa de cadastro de filmes para localizar os Posters mais facilmentediretamente no google.segue o codigo, abaixo// url variavel global url := 'http://www.google.com.br/search?também=isch&hl=pt-BR&source=hp&biw=' + '1280&bih=675&q='+DBEdit1.Text+'&gbv='; frWEB := TfrWEB.Create(Self); frWEB.Show; // antes de utilizar o TwebBro... utilizava o navegador padrão. //ShellExecute(self.WindowHandle,'open',(PWideChar(url)),'','',1); Mas me deparei com um site de cadastros de filmes que não utiliza a mesmo tecnica da GOOGLE.COM.BR para search ele só me volta isso aqui "http://nomedosite.com/lookup.cfm" Dai pesquisando no forum encontrei este post relacionado com o TWebBrowser. Continuando nesta pagina eu exibi o codigo fonte em HTML que é: <table CELLPADDING="0" CELLSPACING="0" WIDTH="100%"> <tr CLASS="bgDB"> <td ALIGN="center"> <table CELLPADDING="0" CELLSPACING="0"> <FORM METHOD="post" ACTION="/lookup.cfm" NAME="MainSearchForm" ONSUBMIT="return CheckValue();"> <tr> <td STYLE="padding-right:5px;"> <img SRC="/Graphics/Search.gif" width="61" height="15"> </td> <td> <input type="text" name="find" STYLE="font-size:9pt;" SIZE="45"> <input TYPE="Hidden" NAME="Action" VALUE="Lookup"> </td> <td STYLE="padding-left:10px;"><input TYPE="Image" SRC="/Graphics/Search_Button.gif"></td> <td STYLE="color:#FFFFFF;padding-left:10px;font-size:12px;"><a HREF="/Features/index.cfm?content=advsearch" Reparando no HTML acima tem um campo/ou sei la como definir ela de "input" no exemplo abaixo postado pelo Douglas com Tags etc... tb consta o tal input ShowMessage(WebBrowser1.OleObject.Document.All.Tags('input').item('meucampo').text);Simplificando como seria possível no campo Search deste site de filmes ele escrever o titulo do filme que esta em um DBEdit e depois apertar OK para procurar o filme?agradeço desde já! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jaumDoDelphi Postado Maio 27, 2011 Denunciar Share Postado Maio 27, 2011 (editado) Acho que achei uma solução, mas por algum motivo o delphi XE não compila.segue abaixo o codigo:uses SHDocVw, ActiveX, MSHTML; 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; procedure SetFieldValue(theForm: IHTMLFormElement; const fieldName: string; const newValue: string; const instance: integer=0); var field: IHTMLElement; inputField: IHTMLInputElement; selectField: IHTMLSelectElement; textField: IHTMLTextAreaElement; begin field := theForm.Item(fieldName,instance) as IHTMLElement; if Assigned(field) then begin if field.tagName = 'INPUT' then begin inputField := field as IHTMLInputElement; if (inputField.type_ <> 'radio') and (inputField.type_ <> 'checkbox') then inputField.value := newValue else inputField.checked := (newValue = 'checked'); end else if field.tagName = 'SELECT' then begin selectField := field as IHTMLSelectElement; selectField.value := newValue; end else if field.tagName = 'TEXTAREA' then begin textField := field as IHTMLTextAreaElement; textField.value := newValue; end; end; end; procedure TForm1.Button1Click(Sender: TObject); var document: IHTMLDocument2; theForm: IHTMLFormElement; index: integer; begin document := TWebBrowser.Document as IHTMLDocument2; theForm := GetFormByNumber(WebBrowser.Document as IHTMLDocument2,0); SetFieldValue(theForm,'title','Back to the Future'); end; a parte que exibe o erro e não compila o projeto e justamente nesta linha document := TWebBrowser.Document as IHTMLDocument2; [DCC Error] Unit1.pas(83): E2233 Property 'Document' inaccessible here [DCC Error] Unit1.pas(83): E2015 Operator not applicable to this operand typeComo o codigo acima diz, DOCUMENT inacessível aqui e Operador não aplicavel para este tipo de operação.alguém sabe como resolver ou alguma luz?agradeço desde já! ^_^ Editado Maio 27, 2011 por jaumDoDelphi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 27, 2011 Denunciar Share Postado Maio 27, 2011 veja http://www.cryer.co.uk/brian/delphi/twebbr...r_oleobject.htm link correto: http://www.cryer.co.uk/brian/delphi/twebbrowser/twebbrowser_oleobject.htm abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jaumDoDelphi Postado Maio 27, 2011 Denunciar Share Postado Maio 27, 2011 Boa tarde Jhonas RESOLVIDO!obrigado pela dica do site, nele tem mta explicação consegui preencher o campo de BUSCA de filmes.Mas dai vem outro problemas, Para clicar no OK "SUBMIT"tentei varias formas mas, nada funciona só da erro de ACCESS VIOLATION, foi dai que li no site que como hj em diaalgumas pessoas agem de má-fe, isso fez com que acaba-se prejudicando mtas pessoas do mundo da programação.Simplificando como tem uns :angry: Topeiras :angry: que fazem BOT para lagar os sites alheios.Quase nenhum site mais permite tal comando para dar o OK em formularios na WEB.Mas beleza, Pelomenos agora o meu programa já manda o nome do filme no campo de procura e so vou ter que apertar o OK mesmo!vlwz e um abraço a todos! :P Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rasecx Postado Outubro 3, 2012 Denunciar Share Postado Outubro 3, 2012 Boa tarde Jhonas RESOLVIDO!obrigado pela dica do site, nele tem mta explicação consegui preencher o campo de BUSCA de filmes.Mas dai vem outro problemas, Para clicar no OK "SUBMIT"tentei varias formas mas, nada funciona só da erro de ACCESS VIOLATION, foi dai que li no site que como hj em diaalgumas pessoas agem de má-fe, isso fez com que acaba-se prejudicando mtas pessoas do mundo da programação.Simplificando como tem uns :angry: Topeiras :angry: que fazem BOT para lagar os sites alheios.Quase nenhum site mais permite tal comando para dar o OK em formularios na WEB.Mas beleza, Pelomenos agora o meu programa já manda o nome do filme no campo de procura e so vou ter que apertar o OK mesmo!vlwz e um abraço a todos! :PJaumDoDelphi.pra dar submit nos forms usando o webbrowser eu usei o comando abaixo e funcionou beleza.WebBrowser.OleObject.Document.Forms.Item('form1','').submit;Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 Boa tarde a todos, Gostaria de colocar uma questão o seu código funciona perfeitamente no webbrowser do delphi mas estou tendo um problema abrir o meu browser por defeito com a página autenticada tal como estou a ver no meu webbrowser do delphi. Alguma sugestão. Um abraço Filipe Branquinho (filipe.branquinho@gmail.com) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 Amigo, só para lembrar .... dúvidas devem ser postadas no forum principal como voce fez.... o forum de tutoriais é somente para códigos prontos ...ok ? estou tendo um problema ao abrir o meu browser por defeito com a página autenticada quanto a sua dúvida, por favor seja mais explicito, pois não entendi exatamente o seu problema abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 No Delphi estou a utilizar o seguinte código: procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('https://www.site.pt/'); end; procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var CurrentBrowser: IWebBrowser2; TopBrowser: IWebBrowser2; Document: OleVariant; Doc3 : IHTMLDocument3; Frm : IHtmlFormElement; Elements: OleVariant; MyBrowser: OleVariant; i: Integer; parameter:string; begin CurrentBrowser := pDisp as IWebBrowser2; TopBrowser := (Sender as TWebbrowser).DefaultInterface; if Assigned(CurrentBrowser) and Assigned(TopBrowser) then begin if CurrentBrowser = TopBrowser then begin Doc3 := CurrentBrowser.Document as IHTMLDocument3; Webbrowser1.OnDocumentComplete := nil; Doc3.getElementById('UserName').setAttribute('value', 'ABCDEF', 0); Doc3.getElementById('Password').setAttribute('value', '123456', 0); WebBrowser1.Silent; Elements := WebBrowser1.OleObject.Document.forms.item(0).elements; for i := 0 to (Elements.Length - 1) do begin //if (Elements.item(i).tagName = 'sbmtLogin') then begin WebBrowser1.Silent := true; Elements.item(i).Click; end; end; end; end; end; No webbrowser do delphi funciona perfeitamente, o que pretendo é abrir o meu browser google chrome com o auto login tal como está a acontecer no webbrowser do delphi. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 esse browser google chrome foi voce que criou ? ou que chamar o google chrome pelo delphi ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 Quero abrir o site das finanças directamente pelo delphi, como é um site https tenho de passar variáveis por exemplo: "Doc3.getElementById('UserName').setAttribute('value', 'ABCDEF', 0);" No delphi estou a utilizar o componente WebBrowser1 que funciona perfeitamente, mas o que pretendo é que os utilizadores do meu programa não utilizem o componente webbrowser1 do delphi mas sim o browser por defeito dos seus pcs. A minha dúvida é como chamar um site https em delphi por exemplo o das finanças passando parametros Username e Password e executar no browser por defeito do pc. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 veja se é isso http://www.devmedia.com.br/forum/delphi-e-chrome/416766 abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 com o shellexecute não estou a conseguir pois não passa os parametros para o site https. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 veja esse link ... acho que vai ajudar http://www.webcheats.com.br/threads/instalando-componente-browser-google-chrome.1888765/ abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 Obrigado pela ajuda mas já testei os 2 sem sucesso. Vou tentar ser mais claro...vou dar um exemplo: Necessito de um código delphi que me permita abrir uma página web por exemplo o gmail passando email e password para as caixas de login. url:=www.gmail.com; ShellExecute(0, 'open', PChar(String(url)), nil, nil, SW_SHOW); e passar os parametros email e password. mas não estou a conseguir passar os parametros. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 e voce quer fazer isso sem usar o webbrowser ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 certo sem utilizar o componente "webbrowser1" do delphi. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 ok... veja o ultimo post desse tópico abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 Obrigado mais uma vez mas não é o que necessito. Necessito de fazer um shellexecute ou winexecute a este link: https://www.acesso.gov.pt/jsp/loginRedirectForm.jsp?path=painelEmitente.action&partID=EFPF de forma a preencher o utilizador e password. Obrigado Filipe Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 qual é a versão do seu delphi ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 2006 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 não tenho essa versão, mas acho que seria possivel isso, se voce estivesse usando o Delphi For .NET vou fazer uma pesquisa na versão do seu delphi, amanhã ou depois te informo se achar uma soluçao para o seu caso..ok? abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 17, 2016 Denunciar Share Postado Maio 17, 2016 ok obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 20, 2016 Denunciar Share Postado Maio 20, 2016 Amigo, não achei nada para o delphi 2006, entretanto, sei que é possivel, mas teria que dispor de tempo para pesquisar mais sobre isso. por enquanto a opção é usar o webbrowser ou pode tentar resolver o problema em outro forum abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Filipe Branquinho Postado Maio 21, 2016 Denunciar Share Postado Maio 21, 2016 Obrigado Jhonas por todo o empenho, entretanto também tenho o Delphi XE7 caso encontre algo para esta versão também irá servir. Mais uma vez obrigado, Filipe Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Badboy for Life
Boa Noite !!
Estou precisando capturar os valores do INPUT de uma pagina HTML, e não sei como fazer isto, estou usando o componente TWEBBROWSER com Delphi 2009.
Se alguém puder me ajudar ficarei muito grato.
Abraços e Obrigado.
Osvaldo Domênico.
Link para o comentário
Compartilhar em outros sites
25 respostass a esta questão
Posts Recomendados
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.