通过VBA检查HTML网站的Aria状态
我正在研究VBA算法,以便自动化与网站的交互。自动化工作得很好,除了一个小问题,它已经给我带来了很多麻烦(而且我对这个web自动化编程相对较新)。这是一个内部网站,所以我不能发布链接,但我会尽量让它透明 以下是我的工作: 我通过通过VBA检查HTML网站的Aria状态,html,vba,Html,Vba,我正在研究VBA算法,以便自动化与网站的交互。自动化工作得很好,除了一个小问题,它已经给我带来了很多麻烦(而且我对这个web自动化编程相对较新)。这是一个内部网站,所以我不能发布链接,但我会尽量让它透明 以下是我的工作: 我通过GetElementByID(“ID”).value=“name”将网站上的名称输入到元素中。然后网站需要时间来处理这些信息,在这部分完成之前,不允许我将信息输入其他元素。当网站处理信息时,弹出窗口基本上会冻结网站 这是我的问题: 网站处理信息所需的时间从2秒到2分钟不等
GetElementByID(“ID”).value=“name”
将网站上的名称输入到元素中。然后网站需要时间来处理这些信息,在这部分完成之前,不允许我将信息输入其他元素。当网站处理信息时,弹出窗口基本上会冻结网站
这是我的问题:
网站处理信息所需的时间从2秒到2分钟不等。因此,我试图找出一种方法,在处理完成后,如何在最短的时间内完成我的程序
我尝试过的:
1) 应用程序。等待
;很明显,但这是最不优雅的方式,不太可靠,因为处理时间差异很大
2) IE.ReadyState=4
或IE.busy
;不起作用,因为在进行此处理时网站已完全加载
3) 我构建了一个基本上是循环的函数,而元素的innerhtml不是名称。我认为这是一个很酷的解决方案,但问题是innerhtml更改有时已经完成,而弹出窗口仍然存在。(该函数在代码的其他部分工作)
4) 我构建了一个函数,通过GetElementByID(“waitingPopUp”)
循环直到找不到弹出窗口。不起作用,因为元素在技术上总是存在的
我认为有效的方法:
这就是主要问题。唯一的问题是,当弹出窗口可见时,状态为onaria hidden=“false”
,否则为aria hidden=“true”
。因此,我的问题是,是否有一种方法可以通过VBA访问此aria状态?理想情况下,我希望构建一个长行的函数“loop while element(“popup”)处于启用状态aria hidden=“false”
”。可能吗
关于您提到VBA,您使用的是什么类型的后端?网络表单?ASP MVC?我不完全明白你的意思,因为我对它还不太熟悉。我正在使用Excel 2010和IE 11。