Notifications
Clear all

Clicar em um botão na Web

3 Posts
2 Usuários
1 Reactions
1,224 Visualizações
(@maria-amaro)
Posts: 2
New Member
Topic starter
 

Bom dia, gente.

Estou tentando realizar uma consulta da cotação do dólar no site do Banco Central, mas não consigo clicar no botão "Pesquisar".

Aparece o seguinte erro: "A variável do objeto ou a variável do bloco "With" não foi definida".

Poderiam me ajudar?

 

Sub busca_dolar()
  Range("D3").ClearContents

  Set ie = CreateObject("InternetExplorer.Application")

  ie.navigate "https://www.bcb.gov.br/estabilidadefinanceira/historicocotacoes"
  ie.Visible = True

  Do While ie.busy And ie.readyState <> "READYSTATE_COMPLETE"
    DoEvents
  Loop

  ie.document.getelementsbyclassname("botao")(0).getelementsbytagname("Pesquisar")(0).Click 
  'erro

End Sub
 
Postado : 25/09/2021 7:42 am
Raygsson
(@raygsson)
Posts: 68
Trusted Member
 

@maria-amaro

 

Você tem 2 problemas na sua rotina. 

O 1ª é que não existe uma tag com o nome de "Pesquisar", lá no HTML esse "Pesquisar" é o atributo "title"

ie.document.getelementsbyclassname("botao")(0).getelementsbytagname("Pesquisar")(0).Click

Pode efetuar o click desta forma:

ie.document.getelementsbyclassname("botao")(0).Click

Se quiser pode até pegar pelo atributo com o método QuerySelector:

ie.document.querySelector("[title=Pesquisar]").Click

O 2ª problema é que as informações que deseja manipular estão numa tag "Iframe", uma janela dentro do site Banco Central.

Esse Iframe esta direcionamando, atributo "src",  para um domínio direrente do domínio principal, vai ter acesso negado se for por essa url:

https://www.bcb.gov.br/estabilidadefinanceira/historicocotacoes

Isso tem relação com regras de segurança, mas pode ser contornado facilmente acessando diretamente a url da tag Iframe.

Sub busca_dolar()

  Range("D3").ClearContents

  Set ie = CreateObject("InternetExplorer.Application")

  ie.navigate "https://ptax.bcb.gov.br/ptax_internet/consultaBoletim.do?method=exibeFormularioConsultaBoletim"
  ie.Visible = True

  Do While ie.busy And ie.readyState <> "READYSTATE_COMPLETE"
    DoEvents
  Loop
  
  ie.document.querySelector("[title=Pesquisar]").Click
 
End Sub

 

Att,

Raygsson

 

 
Postado : 25/09/2021 4:26 pm
maria.amaro reacted
(@maria-amaro)
Posts: 2
New Member
Topic starter
 

@raygsson Agora deu certo!

Muito obrigada.

 
Postado : 27/09/2021 7:32 am