Ajuda com Webbrowser no Delphi.
08/12/2015
0
estou fazendo um projeto com o componente Webbrowser no Delphi, mais como sou novo e só mexi uma vez com esse componente estou apanhando muito.
O site que estou tentando acessar e manipular é esse:
https://sicse.caixa.gov.br/sicse/
É um site da caixa onde se tem vários serviços de para um funcionário de uma empresa.
Tenho algumas dificuldades que vou listar aqui para que talves vocês possam me ajudar.
1º Quando entro no site ele me pede um certificado digital, tem como eu já alimentar a opção de acordo com o numero do certificado que já sei e tenho instalado na maquina?
2º Entrando no site pelo componente, toda hora da um erro de script do java, com as opções sim e não. Tem como sempre que der esse erro eu alimentar com sim ?
Já usei a opção "WebBrowser1.Silent := True;" , que faz parar de aparecer as mensagens, mais não queria restringir o retorno de mensagens pelo site, visto que ele possa me dar alguma mensagem de erro que posso precisar.
3º Entrando no site, a primeira vista tem um combobox que tem as opções que preciso, uso uma função que ja ultilizei em outra ocasião onde mando por paramentroo nome do campo, o evento e o valor. Só que nesse site é alimentado o valor , mais da um erro de scrpit do java quando vai realizar o evento.
Segue o procedimento que eu uso:
procedure 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;
Chamada :
FireEvent(WebBrowser1, 'sltOpcao', 'onchange', '300|ExtratoAnaliticoTrabalhador.Solicitar');
Pois é pessoal é isso, se alguém puder me ajudar a entender e usar esse componente ficarei muito agradecido.
Ate mais.
Adriano
Post mais votado
14/12/2015
Você pode acessar o site http://www.whatbrowser.org/ pelo se você quiser verificar a versão que está sendo emulada, se não me engano, ele utiliza a versão 7 do IE.
Tem como alterar esse parâmetro e forçar o emulador pegar uma versão mais recente (desde que instalada na maquina) do IE, se houver interesse, posso postar.
Mateus Carvalho
Mais Posts
15/12/2015
Adriano
Eu já consegui resolver meus problemas, mais por favor se puder postar essa dica, pois toda informação é bem vinda.
16/12/2015
Mateus Carvalho
1. Abra o regedit, e navegue até o caminho abaixo:
32 bits:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION
64 bits:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION
2. Após isso, de um botão direito > Novo > Valor DWORD (Sua versão)
3. No nome, coloque o nome do executável da sua aplicação, exemplo: minhaaplicacao.exe
4. De um duplo clique na chave criada, e coloque os valores que irão satisfazer suas necessidades:
Decimal (Hexadecimal)
11001 (0x2EDF)
Internet Explorer 11. As páginas web são exibidas no modo de IE11 Standards, independentemente da diretiva! DOCTYPE .
11000 (0x2AF8)
Internet Explorer 11. As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE9.
10001 (0x2AF7)
Internet Explorer 10. As páginas web são exibidas no modo de IE10 Standards, independentemente da diretiva! DOCTYPE .
10000 (0x2710)
Internet Explorer 10. As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE9.
9999 (0x270F)
Internet Explorer 9. As páginas web são exibidas no modo IE9 Standards, independentemente da diretiva! DOCTYPE .
9000 (0x2328)
Internet Explorer 9. As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE9.
8888 (0x22B8)
As páginas web são exibidas no modo IE8 Standards, independentemente da diretiva! DOCTYPE .
8000 (0x1F40)
As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE8.
7000 (0x1B58)
As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE7 Standards.
5. Clique em OK.
Pronto, após isso, basta reiniciar sua aplicação.
Para facilitar, existe instaladores que realizam esse procedimento automaticamente.
Att!
16/12/2015
Adriano
1. Abra o regedit, e navegue até o caminho abaixo:
32 bits:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION
64 bits:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION
2. Após isso, de um botão direito > Novo > Valor DWORD (Sua versão)
3. No nome, coloque o nome do executável da sua aplicação, exemplo: minhaaplicacao.exe
4. De um duplo clique na chave criada, e coloque os valores que irão satisfazer suas necessidades:
Decimal (Hexadecimal)
11001 (0x2EDF)
Internet Explorer 11. As páginas web são exibidas no modo de IE11 Standards, independentemente da diretiva! DOCTYPE .
11000 (0x2AF8)
Internet Explorer 11. As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE9.
10001 (0x2AF7)
Internet Explorer 10. As páginas web são exibidas no modo de IE10 Standards, independentemente da diretiva! DOCTYPE .
10000 (0x2710)
Internet Explorer 10. As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE9.
9999 (0x270F)
Internet Explorer 9. As páginas web são exibidas no modo IE9 Standards, independentemente da diretiva! DOCTYPE .
9000 (0x2328)
Internet Explorer 9. As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE9.
8888 (0x22B8)
As páginas web são exibidas no modo IE8 Standards, independentemente da diretiva! DOCTYPE .
8000 (0x1F40)
As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE8.
7000 (0x1B58)
As páginas Web que contenham padrões baseados em diretrizes! DOCTYPE são exibidos no modo IE7 Standards.
5. Clique em OK.
Pronto, após isso, basta reiniciar sua aplicação.
Para facilitar, existe instaladores que realizam esse procedimento automaticamente.
Att!
Valeu!! Muito obrigado.
Clique aqui para fazer login e interagir na Comunidade :)