我目前正在尝试使用 VBA 和 Excel 自动化我的 IE,因为我们有一些重复性任务要在 Internet Explorer 中调用的 SAP 系统中完成。
到目前为止,我能够启动 IE 并导航到我们系统的起始页。
我查看了 Sap System 的源代码以从 div 中搜索一个 id(可以说它的“SampleID”)。但是,如果我尝试通过 VBA 单击它,我只会返回“无”。于是我尝试通过VBA Debug.Print打印出源代码来查看问题。事情是这样的:
打印的源代码与网站的源代码完全不同。例如,在打印的代码中是一个我在网站源代码中找不到的 iframe。所以这就是我找不到我的 div 和任何其他对象的原因,因为它们不在 VBA 正在搜索的代码中。谁能告诉我出了什么问题?为什么源代码完全不同?
Sub stgGo(){
Dim i As Long
Dim IE As InternetExplorerMedium
Dim objElement As Object
Dim objCollection As Object
Set IE = New InternetExplorer
IE.Visible = True
IE.Navigate ("URL")
'waiting 10 seconds to be really sure javascript is ready
Application.Wait (Now + TimeValue("0:00:10"))
'printing out the false source code
Debug.Print strHTML = myIE.Document.body.innerHTML
Set objCollection = IE.document.getElementsByTagName("div")
i = 0
While i < objCollection.Length
If objCollection(i).ID = "SampleID" Then
objCollection(i).Click
End If
i = i + 1
Wend
End Sub