Olá, estou usando um código VBA para pegar uma informação de uma página web.
O código VBA segue os seguintes passos:
1. Abre uma página web (a página default mostra os dados para a data de ontem 11/04/2018)
2. Preenche o campo de data com o valor 09/04/20214
3. Clica no botão OK
4. Pega um valor da página que foi carregada depois do clique no botão OK
O problema é que o valor retornado não é o valor que foi atualizado depois do clique do botão e sim o valor que já estava na página default.
A página mostrada no IE está com o valor atualizado mas o retorno do código tem o valor antigo.
O código é de novato e que adaptou a partir de buscas na internet.
Obrigado pela ajuda.
Dim IE AsObjectDim objElement AsObjectDim objColletion1 AsObjectDim objColletion2 AsObjectDim x AsObjectDim y AsObjectDim i AsLong'Create Internet Explorer objectSet IE = CreateObject("InternetExplorer.Application")
IE.Visible =True'IE.navigate "http://www.bmfbovespa.com.br/pt_br/servicos/market-data/consultas/mercado-de-derivativos/contratos-em-aberto/por-tipo-de-participante/"
IE.navigate "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp"
sleep (5000)'wait 5 seconds to load web pageSet objColletion1 = IE.document.getelementsbytagname("input")'set field in a object
i =0While i < objColletion1.Length 'try to find out field named "dData1"If objColletion1(i).Name ="dData1"Then' set the date
objColletion1(i).Value ="09/04/2018"'a date before todayEndIf
i = i +1WendSet objColletion2 = IE.document.getelementsbytagname("button")'set the buttons on page
i =0While i < objColletion2.Length 'try to fid out the button to submitIf objColletion2(i).Type ="submit"And objColletion2(i).Name =""Then'OK button foundSet objElement = objColletion2(i)EndIf
i = i +1Wend
objElement.Click 'OK button clicked
sleep (5000)'wait to load web pageForEach x In IE.document.body.getelementsbytagname("table")'search for a expected valueIf InStr(x.innertext,"MERCADO FUTURO DE DÓLAR")>0ThenForEach y In x.getelementsbytagname("tr")If InStr(y.innertext,"Inv. Não Residente")>0Then
MsgBox y.getelementsbytagname("td")(1).innertext
EndIfNext y
EndIfNext x
Set IE =NothingSet objElement =NothingSet objColletion1 =NothingSet objColletion2 =Nothing
Pergunta
Bruno Luigi
Olá, estou usando um código VBA para pegar uma informação de uma página web.
O código VBA segue os seguintes passos:
1. Abre uma página web (a página default mostra os dados para a data de ontem 11/04/2018)
2. Preenche o campo de data com o valor 09/04/20214
3. Clica no botão OK
4. Pega um valor da página que foi carregada depois do clique no botão OK
O problema é que o valor retornado não é o valor que foi atualizado depois do clique do botão e sim o valor que já estava na página default.
A página mostrada no IE está com o valor atualizado mas o retorno do código tem o valor antigo.
O código é de novato e que adaptou a partir de buscas na internet.
Obrigado pela ajuda.
Bruno.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.