Boa tarde, sou novo no fórum e pesquisei algumas coisas sobre pedágio e não consegui muita coisa, abaixo tenho um código em VBA para Excel, que coleta informações de uma planilha, submete a uma pagina da WEB e e obtêm as informações de retorno:
Sub PesqCustoPedágios()
Dim IE As InternetExplorer, CidadeOrig As String, sng As Date
Dim LR As Long, Contador As Long, CidadeDest As String
'Identifica a última célula ativa da lista
LR = Cells(Rows.Count, 1).End(xlUp).Row
'Cria um objeto Internet Explorer
Set IE = New InternetExplorer
'Torna o objeto visível
IE.Visible = False 'True
'Faz um loop por na planilha
For Contador = 2 To LR
'Navega ao site do Mapeia
IE.Navigate "http://qualp.com.br/"
'Identifica se a página já foi carregada
While IE.ReadyState <> READYSTATE_COMPLETE
Wend
sng = Timer
Do While sng + 3 > Timer
Loop
'Carrega os dados que serão preenchidos na página
origem = Range("A" & Contador).Value
destino = Range("B" & Contador).Value
eixos = Range("C" & Contador).Value
categoria = Range("D" & Contador).Value
'Envia os dados da planilha e submente os dados do formulário
IE.Document.all("origem").Value = origem
IE.Document.all("destino").Value = destino
IE.Document.all("eixos").Value = eixos
IE.Document.all("auto-cat") = categoria
IE.Document.all.Item("roteirizar").Click
'Identifica se a página já foi totalmente carregada
While IE.ReadyState <> READYSTATE_COMPLETE
Wend
sng = Timer
Do While sng + 3 > Timer
Loop
'Coloca nas colunas os valores totais calculados
Cells(Contador, 5) = IE.Document.getElementById("roteirizador-info-distancia").innerText
Cells(Contador, 6) = IE.Document.getElementById("roteirizador-info-duracao").innerText
Cells(Contador, 7) = IE.Document.getElementById("custos-totais-value").innerText
Next Contador
IE.Quit
End Sub
No entanto para conseguir a categoria do veiculo o mesmo é feito no objeto row.auto-cat da pagina, e não consegui entender como poderia dar essa informação para o site...
Anexo mandei a planilha para quem pudesse me ajudar.
Grande abraço.
Clessio
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Obter Informações de Pedágio - Transportadora
Obter Informações de Pedágio - Transportadora
- Anexos
-
- Calculo de pedagios.7z
- (17.29 KiB) Baixado 448 vezes
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Obter Informações de Pedágio - Transportadora
Clessio, boa noite.
Cara, estive vendo o site que esta acessando, em específico, no elemento <div> como Atributo Class 'row.auto-cat'.
Se observarmos, dentro dessa Tag <div>, existe 5 elementos <i>, onde cada um deles tem o Atributo Value, referente a cada categoria. Veja a tela abaixo: Pra acessar esses elementos, você adaptar o código abaixo e ver se vai funcionar.
Demais dúvidas, estamos a disposição.
Boa noite e forte abraços.
Cara, estive vendo o site que esta acessando, em específico, no elemento <div> como Atributo Class 'row.auto-cat'.
Se observarmos, dentro dessa Tag <div>, existe 5 elementos <i>, onde cada um deles tem o Atributo Value, referente a cada categoria. Veja a tela abaixo: Pra acessar esses elementos, você adaptar o código abaixo e ver se vai funcionar.
Código: Selecionar todos
Dim oElement As Object
Dim oElementCol As Object
Set oElementCol = IE.Document.getElementsByTagName("i")
For Each oElement in oElementCol
If oElement.Value = "" Then ' --> Valores possíveis: car | truck | bus | motocycle.
oElement.Click
End If
Next oElement
Boa noite e forte abraços.
-
- Acabou de chegar
- Mensagens: 1
- Registrado em: Qui Out 25, 2018 6:27 pm
Re: Obter Informações de Pedágio - Transportadora
Poderiam postar a planilha pronta ou me enviar por email? Renatahulda@gmail.com
Re: Obter Informações de Pedágio - Transportadora
Ao executar o código ocorre um erro em:
IE.Document.all.Item("roteirizar").Click
"A variável do objeto ou a variável do bloco With não foi definida.
Podem me ajudar?
IE.Document.all.Item("roteirizar").Click
"A variável do objeto ou a variável do bloco With não foi definida.
Podem me ajudar?