Página 1 de 1

Obter Informações de Pedágio - Transportadora

Enviado: Ter Abr 04, 2017 5:04 pm
por clessio
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

Re: Obter Informações de Pedágio - Transportadora

Enviado: Qua Abr 05, 2017 9:10 pm
por Mikel Silveira Fraga
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:
DeveloperToolsChrome.jpg
Elemento Div row.auto-cat
DeveloperToolsChrome.jpg (65.73 KiB) Exibido 2963 vezes
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
Demais dúvidas, estamos a disposição.

Boa noite e forte abraços.

Re: Obter Informações de Pedágio - Transportadora

Enviado: Qui Out 25, 2018 6:31 pm
por Renatahulda
Poderiam postar a planilha pronta ou me enviar por email? Renatahulda@gmail.com

Re: Obter Informações de Pedágio - Transportadora

Enviado: Sex Jan 18, 2019 2:10 pm
por lccardozo
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?