InternetExplorer - удалить определенный элемент из IE.Document

Я использую VBA для автоматизации извлечения отчетов со структурированной веб-страницы.

У меня есть следующий блок кода, который изменяет раскрывающийся элемент для каждого элемента в массиве"

With IE
For Each itemName In itemNames()
i = i + 1
Module2.check_and_wait_for_item ("cboDistrict")
Set Dropdown = .document.getElementsByName("cboDistrict")(0)
Dropdown.Value = itemValues(i)
Dropdown.FireEvent ("onchange")



check_and_wait_for_item ("cmdRptPreview")
Set btnPreview = .document.getElementsByName("cmdRptPreview")(0)
btnPreview.Click

check_and_wait_for_item ("BtnExport")
Set HTMLDoc = .document
write_file_to_dir HTMLDoc, "C:\Users\user\Documents\____thing\", itemName & ".html"
.GoBack

Next itemName
End With

Проблема возникает с IE.GoBack. У меня есть функция, которая проверяет, завершился ли выполнение JavaScript, зацикливаясь, пока определенный элемент отсутствует на странице. «Возврат» возвращает элемент на страницу, даже если событие JavaScript еще не завершилось.

Вот почему я хочу удалить старый элемент «cmdRptPreview», прежде чем моя функция проверит, завершилось ли выполнение события JavaScript.

Есть ли способ сделать это? Цените помощь.


person Marat_Muginov    schedule 12.02.2020    source источник


Ответы (1)


Решение состояло в том, чтобы удалить узел, содержащий элемент, проверяемый функцией ожидания JavaScript. После .GoBack:

check_and_wait_for_item ("cmdRptPreview")
.document.getElementsByName("cmdRptPreview")(0).ParentNode.RemoveChild .document.getElementsByName("cmdRptPreview")(0)
person Marat_Muginov    schedule 12.02.2020
comment
Поздравление. Я предлагаю вам попробовать пометить этот ответ как принятый ответ на этот вопрос через 48 часов, когда он будет доступен для отметки. Это может помочь другим членам сообщества в будущем в подобных вопросах. Спасибо за понимание. - person Zhi Lv; 13.02.2020