Я пытаюсь собрать некоторые данные отслеживания с веб-сайта UPS, и я могу заставить это работать, используя элементы управления MSInternet и открывая экземпляр IE, но когда я пытаюсь сделать то же самое, используя XML-запрос, чтобы сэкономить время, я могу Кажется, я не назначаю нужный мне элемент, поэтому я могу извлечь из него innerText.
Кажется, проблема заключается в том, что я установил HTMLTrackStatus с помощью метода getelementsbyid. Когда я помещаю остановку в код прямо перед печатью в непосредственное окно, я проверяю содержимое HTMLTrackStatus, и оно отображается как «Ничего».
Когда я запускаю код, окно ошибки сообщает мне, что объект или переменная не установлены. Это имеет смысл, потому что он не устанавливается, но я не могу понять, почему он не возвращает мой HTML-элемент с использованием этого идентификатора (который существует).
Я могу получить статус отслеживания из этого HTML-элемента, используя элементы управления Интернетом MS и открывая IE с помощью VBA, но это медленно.
Dim XMLPage As New MSXML2.ServerXMLHTTP60 Dim HTMLDoc As New MSHTML.HTMLDocument Dim HTMLTrackStatus As MSHTML.IHTMLElement
XMLPage.Open "GET", "https://www.ups.com/track?loc=en_US&tracknum=1Z9E700W0317182871&requester=WT/trackdetails", False XMLPage.send 'отправить запрос
HTMLDoc.body.innerHTML = XMLPage.responseText
Установить HTMLTrackStatus = HTMLDoc.getElementById("stApp_txtPackageStatus")
Debug.Print HTMLTrackStatus.innerText
Я помещаю свою остановку в строку отладки, и когда я проверяю содержимое HTMLTrackStatus, он возвращает «ничего». почему это не возвращает нужный мне элемент?