Fórum Manipular pagina com TWebBrowser #535878

28/10/2015

0

Estou tentando manipular a seguinte pagina pelo componente TWebBrowser.
'https://www.fazenda.sp.gov.br/guiasinternet/Gare/Paginas/Gare.aspx'

Essa pagina é alterada a cada interação, por exemplo quando você abre ela , apenas um combobox é exibido,
a partir do preenchimento, o segundo aparece.

O meu problema é simples (eu acho) mais não estou conseguindo resolver.
Eu consigo iniciar a pagina com o combobox preenchido, mais não consigo reproduzir a função de click para que o segundo combobox apareça...
É a primeira vez que trabalho com esse componente e estou apanhando muito.
Adriano

Adriano

Responder

Post mais votado

29/10/2015

Bom dia! Tenho uma procedure que pode te ajudar... simulei aqui e deu certo!


Uses: MSHTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.FireEvent(WebBrowser: TWebBrowser; ID, event, value: String);
var
  v: OleVariant;
  doc3: IHTMLDocument3;
  el: IHTMLElement;
begin
  if WebBrowser.Document <> nil then
    if WebBrowser.Document.QueryInterface(IHTMLDocument3, doc3) = S_OK then
      begin
        el := doc3.getElementById(ID);
        if el <> nil then
          begin
            (el as IHTMLSelectElement).value := value;
            OleVariant(el as IHTMLElement). FireEvent(event, v);
          end;
        end;
end;


Modo de uso:
1
FireEvent(WebBrowser1, 'ReceitaTipo', 'onchange', 'GARE DR');


Boa sorte!

Mateus Ribeiro

Mateus Ribeiro
Responder

Gostei + 1

Mais Posts

29/10/2015

Adriano

Funcionou. Muito obrigado.
Só tenho mais uma duvida... como vou saber qual é o ID, event,
value que tenho que passar para a função???
Responder

Gostei + 0

29/10/2015

Mateus Ribeiro

No seu caso, o evento é sempre OnChange... parece q os ComboBox do site só se manifestam se esse evento for executado... O ID do campo eu descobri usando o "Inspecionar Elemento" do navegador Chrome.

Mas pra adiantar pra vc, o ID do combo "Código de Receita" é "CodigoReceita"
e o ID do campo "CNPJ ou CPF" é "CnpjCpf". Espero q tenha entendido.


Boa sorte!
Responder

Gostei + 1

29/10/2015

Adriano

Matheus, esta me ajudando muito. Obrigado.
Mais tenho duas duvidas, como manipular o radio button da pagina ?
E o button vou chamar o evento onClick, mais eu passo algum valor ?
Desculpe a falta de conhecimento... Mais se puder me ajudar ou mandar algum site para que eu possa saber mais como trabalhar com o componente.
Responder

Gostei + 0

29/10/2015

Adriano

Matheus, esta me ajudando muito. Obrigado.
Mais tenho duas duvidas, como manipular o radio button da pagina ?
E o button vou chamar o evento onClick, mais eu passo algum valor ?
Desculpe a falta de conhecimento... Mais se puder me ajudar ou mandar algum site para que eu possa saber mais como trabalhar com o componente.
Responder

Gostei + 0

29/10/2015

Mateus Ribeiro

Para efetuar o click no botão é mais simples, vc usa o seguinte:

1
WebBrowser1.OleObject.Document.GetElementByID('btnBuscaDados').Click; // O ID do botão é "btnBuscaDados"


Agora, para selecionar um item no RadioGroup, vc tem algumas opções de códigos nesse: [url:descricao=Exemplo de leitura e definição de opção no RaioGroup em uma página web em um TWebBrowser]http://www.cryer.co.uk/brian/delphi/twebbrowser/example_form_elements_radio_buttons.htm[/url]


Boa sorte!!
Responder

Gostei + 0

29/10/2015

Adriano

Cara, muito obrigado! Você me ajudou muito!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar