Как вставить значение в поле HTML пространства с помощью VBA - PullRequest
2 голосов
/ 07 мая 2019

Я пытаюсь вставить определенное значение в 3 разных поля. Однако я не нашел пример, который работает с сайтом, который я использую.

Сайт: http://www.b3.com.br/pt_br/market-data-e-indices/indices/indices-de-segmentos-e-setoriais/serie-historica-do-di.htm

Sub Download()

Dim user, password As Variant

Application.ScreenUpdating = False

'Planilha Ativa
Worksheets("Realizado").Activate

'Abrir a página da BMF
Set ie = CreateObject("InternetExplorer.Application")
    ie.navigate "http://www.b3.com.br/pt_br/market-data-e-indices/indices/indices-de-segmentos-e-setoriais/serie-historica-do-di.htm"
    ie.Visible = True

ie.Document.all.Item("DT_DIA_DE").Value = "02"
ie.Document.all.Item("DT_MES_DE").Value = "01"
ie.Document.all.Item("DT_ANO_DE").Value = "2019"

Application.ScreenUpdating = True


End Sub

1 Ответ

2 голосов
/ 08 мая 2019

Internet Explorer:

Он находится внутри фрейма.Первоначально вы можете перейти непосредственно к источнику src для iframe с помощью

.Navigate2 http://estatisticas.cetip.com.br/astec/series_v05/paginas/lum_web_v05_template_informacoes_di.asp?str_Modulo=completo&int_Idioma=1&int_Titulo=6&int_NivelBD=2

Или выбрать элемент iframe и перейти к его src

Option Explicit
'VBE > Tools > References: Microsoft Internet Controls
Public Sub NavigateLinks()
    Dim ie As New InternetExplorer
    With ie
        .Visible = True
        .Navigate2 "http://www.b3.com.br/pt_br/market-data-e-indices/indices/indices-de-segmentos-e-setoriais/serie-historica-do-di.htm"

        While .Busy Or .readyState < 4: DoEvents: Wend
        .Navigate2 .document.getElementById("bvmf_iframe").src
        While .Busy Or .readyState < 4: DoEvents: Wend
        With .document
            .querySelector("[name='DT_DIA_DE']").Value = "02"
            .querySelector("[name='DT_MES_DE']").Value = "01"
            .querySelector("[name='DT_ANO_DE']").Value = "2018"
            .querySelector("[href*='EnvioChecaDados']").Click
        End With
        Stop
        .Quit
    End With
End Sub

XHR (XMLHttpRequest):

Страница отправляет запрос XHR в форме POST на этот URL:

http://estatisticas.cetip.com.br/astec/series_v05/paginas/lum_web_v04_10_03_consulta.asp

Вы можете попытаться повторить этот запрос и вообще избежать браузера.Если вы вручную сделаете запрос на странице и осмотрите вкладку сети с помощью инструментов разработчика (F12 - Chrome), вы найдете этот URL.Отображаются все параметры формы POST, включая части даты:

enter image description here


Нажмите для загрузки:

.document.querySelector(".primary-text a").click
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...