Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
VBA Consulta Site
-
- Colaborador
- Mensagens: 12
- Registrado em: Qui Set 06, 2018 7:40 pm
VBA Consulta Site
Olá,
Estou montando uma aplicação para fazer consulta em um site, consigo preencher os campos do site mas qdo clico no botão apresenta msg dizendo que os campos não foram preenchidos.
Este é o site https://canalconsorciado.bradesco.com.br/valor-receber
Doc.getElementById("grupo").Value = Grupo
Doc.getElementById("cota").Value = Cota
Doc.getElementById("inscricaoNacional").Value = CpfCnpj
Doc.getElementById("numeroContrato").Value = nrContrato
Doc.getElementsByTagName("BUTTON").Item(1).Click
Poderiam me ajudar.
Abs,
Estou montando uma aplicação para fazer consulta em um site, consigo preencher os campos do site mas qdo clico no botão apresenta msg dizendo que os campos não foram preenchidos.
Este é o site https://canalconsorciado.bradesco.com.br/valor-receber
Doc.getElementById("grupo").Value = Grupo
Doc.getElementById("cota").Value = Cota
Doc.getElementById("inscricaoNacional").Value = CpfCnpj
Doc.getElementById("numeroContrato").Value = nrContrato
Doc.getElementsByTagName("BUTTON").Item(1).Click
Poderiam me ajudar.
Abs,
-
- Colaborador
- Mensagens: 12
- Registrado em: Qui Set 06, 2018 7:40 pm
Re: VBA Consulta Site
Desculpa, não coloquei o código completo. Segue abaixo.
Dim QtdDias As Integer
Public FimDaInstrucao As Boolean
Declare PtrSafe Function apShowIE Lib "user32" Alias "ShowWindow" _
(ByVal hwnd As LongLong, ByVal nCmdShow As Long) As LongLong
'Declare Function apShowIE Lib "user32" Alias "ShowWindow" _
' (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Global Const SW_MAX = 3
Global Const SW_SHOWNORMAL = 1
Global Const SW_MINI = 2
Sub ConsultarGrupoCota()
Dim Grupo As String
Dim Cota As String
Dim CpfCnpj As String
Dim nrContrato As String
Dim Cons As Date
Dim GNE As String
GNE = "GNE"
Dim Lln As Integer
Dim Cln As Integer
Lln = 2
Cln = 6
Do While ws_Consulta.Cells(Lln, Cln) <> ""
Lln = Lln + 1
Loop
Grupo = ws_Consulta.Cells(Lln, 10).Value
Cota = ws_Consulta.Cells(Lln, 11).Value
CpfCnpj = ws_Consulta.Cells(Lln, 2).Value
nrContrato = ws_Consulta.Cells(Lln, 5).Value
Dim Doc As HTMLDocument
Dim IE As New InternetExplorer
Dim sURL As String
sURL = "https://canalconsorciado.bradesco.com.br/valor-receber"
With IE
.Visible = True
apShowIE IE.hwnd, SW_MAX
.navigate sURL
End With
'aguarda IE abrir
Do While IE.readyState <> READYSTATE_COMPLETE
'Do While Not WaitingLoad(2): VBA.DoEvents: Loop
'cCount = cCount + 1
'If cCount > 6 And cCount < 7 Then
'IE.Refresh
'ElseIf cCount > 10 Then
'MsgBox "O tempo limite de execução da função foi excedido! Favor tentar novamente mais tarde.", _
'vbOKOnly + vbCritical, "TEMPO LIMITE DE EXECUÇÃO EXCEDIDO"
' IE.Quit
' ' Exit Sub
End If
Loop
Set Doc = IE.document
'Application.SendKeys "{TAB}", True ' Send ALT+F4 to close Calculator.
Doc.getElementById("grupo").Value = "00671"
Doc.getElementById("cota").Value = "0240"
Doc.getElementById("inscricaoNacional").Value = "000.000.000-00"
Doc.getElementById("numeroContrato").Value = "1234567"
Doc.getElementsByTagName("BUTTON").Item(1).Click
IE.Quit
End Sub
Dim QtdDias As Integer
Public FimDaInstrucao As Boolean
Declare PtrSafe Function apShowIE Lib "user32" Alias "ShowWindow" _
(ByVal hwnd As LongLong, ByVal nCmdShow As Long) As LongLong
'Declare Function apShowIE Lib "user32" Alias "ShowWindow" _
' (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Global Const SW_MAX = 3
Global Const SW_SHOWNORMAL = 1
Global Const SW_MINI = 2
Sub ConsultarGrupoCota()
Dim Grupo As String
Dim Cota As String
Dim CpfCnpj As String
Dim nrContrato As String
Dim Cons As Date
Dim GNE As String
GNE = "GNE"
Dim Lln As Integer
Dim Cln As Integer
Lln = 2
Cln = 6
Do While ws_Consulta.Cells(Lln, Cln) <> ""
Lln = Lln + 1
Loop
Grupo = ws_Consulta.Cells(Lln, 10).Value
Cota = ws_Consulta.Cells(Lln, 11).Value
CpfCnpj = ws_Consulta.Cells(Lln, 2).Value
nrContrato = ws_Consulta.Cells(Lln, 5).Value
Dim Doc As HTMLDocument
Dim IE As New InternetExplorer
Dim sURL As String
sURL = "https://canalconsorciado.bradesco.com.br/valor-receber"
With IE
.Visible = True
apShowIE IE.hwnd, SW_MAX
.navigate sURL
End With
'aguarda IE abrir
Do While IE.readyState <> READYSTATE_COMPLETE
'Do While Not WaitingLoad(2): VBA.DoEvents: Loop
'cCount = cCount + 1
'If cCount > 6 And cCount < 7 Then
'IE.Refresh
'ElseIf cCount > 10 Then
'MsgBox "O tempo limite de execução da função foi excedido! Favor tentar novamente mais tarde.", _
'vbOKOnly + vbCritical, "TEMPO LIMITE DE EXECUÇÃO EXCEDIDO"
' IE.Quit
' ' Exit Sub
End If
Loop
Set Doc = IE.document
'Application.SendKeys "{TAB}", True ' Send ALT+F4 to close Calculator.
Doc.getElementById("grupo").Value = "00671"
Doc.getElementById("cota").Value = "0240"
Doc.getElementById("inscricaoNacional").Value = "000.000.000-00"
Doc.getElementById("numeroContrato").Value = "1234567"
Doc.getElementsByTagName("BUTTON").Item(1).Click
IE.Quit
End Sub
Re: VBA Consulta Site
Colega, não consegui fazer o codigo funcionar uma só vez. Pode compartillhar a planilha?
-
- Colaborador
- Mensagens: 12
- Registrado em: Qui Set 06, 2018 7:40 pm
Re: VBA Consulta Site
Colega,
O código está funcionando. Se colocar um ponto de interrupção na linha abaixo:
Você verá os dados preenchidos. O site os apaga quando inválidos após clicar no botão Acessar.
Att
O código está funcionando. Se colocar um ponto de interrupção na linha abaixo:
Código: Selecionar todos
Doc.getElementsByTagName("BUTTON").Item(1).Click
Att
Re: VBA Consulta Site
Tem alguma validação por JavaScript que esta removendo os valores inseridos pela biblioteca que ta usando (Internet Controls).
Se usar a biblioteca Selenium Basic dá certo, a inserção é feita de outra forma.
Att,
Raygsson
Se usar a biblioteca Selenium Basic dá certo, a inserção é feita de outra forma.
Att,
Raygsson
Código: Selecionar todos
Sub TesteSelenium()
Dim driver As New IEDriver
Grupo = ws_Consulta.Cells(2, 10).Value
Cota = ws_Consulta.Cells(2, 11).Value
CpfCnpj = ws_Consulta.Cells(2, 2).Value
nrContrato = ws_Consulta.Cells(2, 5).Value
driver.Get "https://canalconsorciado.bradesco.com.br/valor-receber"
driver.FindElementById("grupo").SendKeys Grupo
driver.FindElementById("cota").SendKeys Cota
driver.FindElementById("inscricaoNacional").SendKeys CpfCnpj
driver.FindElementById("numeroContrato").SendKeys nrContrato
driver.FindElementsByTag("button").Item(2).Click
driver.Wait (3000)
driver.Quit
End Sub
-
- Colaborador
- Mensagens: 12
- Registrado em: Qui Set 06, 2018 7:40 pm
Re: VBA Consulta Site
Está dando erro na linha Driver.Get "https://canalconsorciado.bradesco.com.br/valor-receber"
"Erro em tempo de execução "
Erro de automação
"Erro em tempo de execução "
Erro de automação
Re: VBA Consulta Site
Vc precisa fazer a instalação dessa no biblioteca, acessa o link que deixei na msg acima, baixa o programa e instala. Depois vai em Ferramentas > Referências e marca a opção do Selenium.
Se tiver com mais duvidas basta jogar no YouTube "Selenium VBA", tem alguns vídeos de instalação.
Se tiver com mais duvidas basta jogar no YouTube "Selenium VBA", tem alguns vídeos de instalação.
-
- Colaborador
- Mensagens: 12
- Registrado em: Qui Set 06, 2018 7:40 pm
Re: VBA Consulta Site
Pra ter dado o erro na linha do .Get pode ser algo na hora de conectar o IEDriver com o Internet Explorer, já que passou pela linha de declaração do Objeto e pra isso tem que ter o Selenium Instalado e a biblioteca selecionada nas referências.
Pode estar faltando o Net Framework 3.5 no seu PC, o Selenium precisa dele. Pode baixar lá no site da Microsoft.
Pode estar faltando o Net Framework 3.5 no seu PC, o Selenium precisa dele. Pode baixar lá no site da Microsoft.