【发布时间】:2012-03-18 05:08:48
【问题描述】:
我正在寻找一种方法来关闭加载网页时加载的 Javascript 弹出/消息框(即不是新的 IE 窗口,而是脚本化的 alert())。
我目前的代码可以将数据加载到搜索表单中,运行搜索,从结果中检索所需信息,退出搜索,然后继续处理列表中的下一项。在某些情况下,搜索结果中缺少一条关键信息。发生这种情况时,页面上的 JavaScript 会在页面加载时弹出消息,让用户知道该信息丢失。通过自动化,代码会在继续之前暂停(等待)清除框,并且用户必须在此发生之前单击“确定”按钮。
(我无法直接更改页面的源脚本,因为这超出了我在工作中的职责范围。另外,保留此功能以供一般使用更为重要;它真的只会受益我正在创建的这个小用途函数。)
虽然我无法更改源脚本,但我找到了example,说明如何通过更改加载的脚本来防止显示弹出窗口/警报。但是,它与一个已经加载的页面有关,并且对我不起作用(据我所知)。
IE.Document.getElementById("clearRelItems").removeAttribute "onClick"
IE.Document.getElementById("clearRelItems").setAttribute "onClick", "return true;"
是否可以使用此方法在页面完全加载之前进行更改?即这可以用来以某种方式绕过/规避页面加载时的函数调用吗?
我知道 sendkeys,但如果可能的话,我宁愿避免使用这个选项(如果没有其他选择,我最终可能会使用这个选项)。此功能旨在由用户启动,然后在后台运行,因为它需要一些时间才能完成。
我已经按照@Kyle 的建议研究了获取 XML,但我认为我不够熟练,无法使这种方法发挥作用。
我还能如何绕过警报?有没有办法实际激活警报上的 OK 按钮?是否可以通过任何其他方式绕过页面的警报/加载?
【问题讨论】:
-
这是一个 Javascript alert();消息框?还是一个html元素?
标签: javascript internet-explorer vba automation alert