我对一些 VBA 代码有非常奇怪的问题。代码是 InternetExplorer 自动化,非常简单:我只需要加载页面,输入凭据并单击另一个页面上的按钮(成功登录后)。
但是...我的代码不起作用(但仅在我在 AWS 上的一台机器上)。在我的本地机器上,这段代码运行良好。
奇怪的是它接缝我只能访问第一个加载页面的 Document 属性(我需要输入登录名/密码)。我的意思是,当我加载起始页时,MyBrowser.Document
我可以从属性中看到所有字段。INPUT
但成功登录后(IE 窗口可见)我从属性中看到相同 INPUT
的字段MyBrowser.Document
!另外(正如我所说)我对这段代码在另一个机器上没有问题。
IE 保护模式被禁用(这是 IE 11)。我认为这是某种安全问题,但我无法自己找到它......
这是我的代码:
'MyBrowser is IE instanse
'Here I'm loading start page and input login/password
'Next the browser show me another page where I need to click a button
'But Debug messages show me input fields for the first Form!
Application.Wait (Now + TimeValue("0:00:05"))
Do
DoEvents
Loop Until MyBrowser.ReadyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser.Document
For Each myHTML_Element In HTMLDoc.getElementsByTagName("INPUT")
If myHTML_Element.Type = "submit" And myHTML_Element.Name = "BUTTONNEWJOBS" Then myHTML_Element.Click: Exit For
Debug.Print myHTML_Element.Name
Next
更新
我不知道为什么,但我的浏览器对象总是Busy
这就是我得到旧页面 HTML 的原因。我试过了.Stop
,但没有运气。