Amigos, Estou quebrando a cabeça e não consegui avançar na solução. Este código eu estou adaptando com o Selenium VBA para poder usar com Google Chrome ou Edge. Não consegui encontrar uma alternativa para que quando preencher a informação do CEP na tabela FAIXA_CEP e continuar fazendo a pesquisa tendo um novo resultado preencher a próxima linha. Se puderem me ajudar e indicar material para estudo, fico agradecido.
- Código:
Option Compare Database
Sub lsPesquisarCEPFaixa()
Dim lCidade As String
Dim lUF As String
Dim rsUF As DAO.Recordset
Dim rsCID As DAO.Recordset
Dim lUltimaLinhaAtiva As Long
Dim sng
'Declara Variáveis Access
Dim rsSQL As DAO.Recordset
'o recordset carrega apenas os registros que nao estejam preenchidos a faixa de cep
Set rsSQL = CurrentDb().OpenRecordset("Select * from Tabela1 where isnull (Faixa_Cep)")
'so executa se houver dados
If rsSQL.RecordCount > 0 Then
'esses dois codigos é necessario para a funcao RecordCount retornar o valor correto dos registros
rsSQL.MoveLast
rsSQL.MoveFirst
End If
lUltimaLinhaAtiva = rsSQL.RecordCount
Set driver = New ChromeDriver
'Set driver = New EdgeDriver
'Abre site a ser consultado
driver.Get "https://buscacepinter.correios.com.br/app/faixa_cep_uf_localidade/index.php"
'Espera carregar a página
sng = Timer
Do While sng + 3 > Timer
Loop
Set rsUF = CurrentDb.OpenRecordset("SELECT ESTADO FROM Tabela1")
Set rsCID = CurrentDb.OpenRecordset("SELECT LOCALIDADE FROM Tabela1")
'Envia dados para consulta
Do While Not rsCID.EOF
driver.FindElementByXPath("//select[@id='uf']").SendKeys rsUF!ESTADO
driver.FindElementByXPath("//input[@id='localidade']").SendKeys rsCID!LOCALIDADE
driver.FindElementByXPath("//button[@id='btn_pesquisar']").Click
'Espera Carregar a página
sng = Timer
Do While sng + 3 > Timer
Loop
'Define a tabelaDim Tabela As WebElement
Set Tabela = driver.FindElementByXPath("/html[1]/body[1]/main[1]/form[1]/div[1]/div[2]/div[1]/div[3]/div[1]/table[1]/tbody[1]")
'Pega o dado consultado e atualiza informação na Tabela
****Nesta parte eu não consegui uma solução para pular para a próxima linha
CurrentDb.Execute "UPDATE Tabela1 SET FAIXA_CEP = '" & driver.FindElementByXPath("/html[1]/body[1]/main[1]/form[1]/div[1]/div[2]/div[1]/div[3]/div[1]/table[1]/tbody[1]/tr[1]/td[2]").Text & "' WHERE Linha = 1"
'
Retorna para o campo de pesquisa
driver.FindElementByXPath("//button[@id='btn_voltar']").Click
'Move para a próxima cidade
rsCID.MoveNext
Loop
'Finalizada a consulta fecha o navegador
driver.Quit
'Fecha e Limpa variáveis
rsUF.Close
rsCID.Close
Set rsUF = Nothing
Set rsCID = Nothing
Set rsFX = Nothing
End Sub
- Anexos
- Access Pesquisa Cep Web.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (44 Kb) Baixado 55 vez(es)