VBA / Internet Explorer: захват результирующего URL из события OnClick - PullRequest
0 голосов
/ 19 сентября 2019

Я автоматизирую сбор некоторых данных, используя объект Internet Explorer в VBA, и ударил стену, пытаясь получить URL-адрес, полученный в результате события href onclick.

Ссылка "нажимается" кодомниже, который приводит меня к диалогу Сохранить как.Вместо этого я бы просто хотел получить результирующий URL, сгенерированный событием onclick.Я не могу извлечь это из тега <a>, так как атрибут href указывает на javascript: void (0).

Я знаю, что IE сам знает полученный URL-адрес, так как я могу проверить это из окна загрузокесли я вручную загружаю полученный файл, но есть ли способ программно получить доступ и захватить (в строке) URL-адрес, куда IE направляется при возникновении события onclick?Не имея на самом деле IE пытаться загрузить сам файл?

Set Link = IE.document.getElementsByTagName("a")

For Each l In Link
    If l.innertext = "Excel" Then
       l.FireEvent ("onclick")
    Exit For
    End If
Next l

1 Ответ

0 голосов
/ 19 сентября 2019

Может, тебе это поможет?

Sub tst()

    Dim ie As New SHDocVw.InternetExplorer
    Dim ieDOC As HTMLDocument
    Dim ieONC As IHTMLElement
    Dim ieONCs As IHTMLElementCollection

    ie.navigate "[your url]"
    ie.Visible = True
    Do: DoEvents: Loop Until ie.readyState = READYSTATE_COMPLETE
    Do: DoEvents: Loop While ie.Busy = True

    Set ieDOC = ie.document
    Set ieONCs = ieDOC.getElementsByClassName("[class]")

    For Each ieONC In ieONCs

        Debug.Print ieONC.onclick

    Next

End Sub
...