InternetExplorer - 从 IE.Document 中删除特定元素
InternetExplorer - delete specific element from 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 是否已完成执行。 "Going back" 将元素放回页面,即使 JavaScript 事件尚未完成 运行。
这就是为什么我要在函数检查 JavaScript 事件是否已完成之前删除旧的 "cmdRptPreview" 元素 运行。
有办法吗?感谢帮助。
解决方案是删除包含正在被 JavaScript 服务员函数检查的元素的节点。
.GoBack 之后:
check_and_wait_for_item ("cmdRptPreview")
.document.getElementsByName("cmdRptPreview")(0).ParentNode.RemoveChild .document.getElementsByName("cmdRptPreview")(0)
我正在使用 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 是否已完成执行。 "Going back" 将元素放回页面,即使 JavaScript 事件尚未完成 运行。
这就是为什么我要在函数检查 JavaScript 事件是否已完成之前删除旧的 "cmdRptPreview" 元素 运行。
有办法吗?感谢帮助。
解决方案是删除包含正在被 JavaScript 服务员函数检查的元素的节点。 .GoBack 之后:
check_and_wait_for_item ("cmdRptPreview")
.document.getElementsByName("cmdRptPreview")(0).ParentNode.RemoveChild .document.getElementsByName("cmdRptPreview")(0)