Você está aqui: Delphi ::: VCL - Visual Component Library ::: TWebBrowser |
Como pesquisar e retornar um elemento HTML em um TWebBrowser usando o método getElementById()Quantidade de visualizações: 15756 vezes |
Em algumas situações precisamos pesquisar e retornar um elemento HTML na página carregada em um controle TWebBrowser. Para isso podemos usar o método getElementById(), disponível na interface IHTMLDocument3 (esta interface herda de IDispatch e requer a DLL mshtml.dll e Internet Explorer 5 ou mais recente instalado na máquina cliente). Veja os códigos para os eventos Click de dois botões. No primeiro botão nós carregamos o documento HTML e no segundo pesquisamos e retornamos o conteúdo do elemento HTML com o id que queremos. Este é o código para o documento HTML usado neste exemplo: <html> <head> <title>Acessando documentos HTML usando TWebBrowser</title> </head> <body> <p id="p1">Sou um parágrafo com o id "p1"</p> </body> </html> E aqui está o código Delphi: procedure TForm3.Button1Click(Sender: TObject); var url: String; begin // vamos carregar o documento HTML url := 'pagina.html'; // vamos acessar a página WebBrowser1.Navigate(url); end; procedure TForm3.Button2Click(Sender: TObject); var doc: IHTMLDocument3; elem: IHTMLElement; conteudo: String; begin // uses MSHTML_TLB // vamos obter o documento representando a página web doc := WebBrowser1.Document as IHTMLDocument3; // o documento foi obtido com sucesso if doc <> nil then begin // vamos tentar encontrar o elemento HTML com o id "p1" elem := doc.getElementById('p1'); // o documento HTML foi encontrado? if elem <> nil then begin // vamos exibir o texto do elemento conteudo := elem.getAttribute('innerHTML', 0); ShowMessage('O conteúdo do elemento é: ' + conteudo); end else begin ShowMessage('O elemento HTML com o id informado não foi encontrado.'); end; end else begin ShowMessage('O documento HTML não pôde ser obtido.'); end; end; Note que neste código eu testei se a propriedade Document da classe TWebBrowser é nil antes de prosseguir com o código. O mesmo foi feito com o elemento IHTMLElement. Isso evita os erros de violação de acesso caso a página não tenha sido carregada ou o elemento HTML não tenha sido encontrado. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |