InternetExplorer-从IE.Document中删除特定元素

问题描述 投票:0回答:1

我正在使用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事件尚未完成运行,“返回”也会将该元素放回到页面上。

这就是为什么要在我的函数检查JavaScript事件是否已完成运行之前删除旧的“ cmdRptPreview”元素的原因。

有办法吗?感谢帮助。

excel vba internet-explorer mshtml
1个回答
0
投票

解决方案是删除包含JavaScript服务员功能正在检查的元素的Node。在.GoBack之后:

check_and_wait_for_item ("cmdRptPreview")
.document.getElementsByName("cmdRptPreview")(0).ParentNode.RemoveChild .document.getElementsByName("cmdRptPreview")(0)
© www.soinside.com 2019 - 2024. All rights reserved.