我是vba编码的新手,可以从网站提取数据,因此通常,我使用此代码连接并检查项目以从网站提取数据,但是此代码无法通过我公司的webapp在vba中通过观看检查数据。当我向班级添加监视功能时,它什么也没有显示。该怎么办。HTML Code from my firm webapp 1
HTML Code from my firm webapp 2
Sub Connect_web()
Dim ie As InternetExplorer
Dim doc As HTMLdocument
Dim ele As IHTMLElement
Dim col As IHTMLElementCollection
Dim ele_tmp As IHTMLElement
Set ie = New InternetExplorer
URL = "" ' Cannot provide
ie.Visible = True
ie.navigate URL
Do While ie.readyState <> READYSTATE_COMPLETE
Application.StatusBar = "Loading Page..."
DoEvents
End If
Loop
Set doc = ie.Document
Set ele = doc.getElementByClassName("GDB3EHGDHLC")
end sub
答案 0 :(得分:2)
让我们从四件事开始:
1)使用.Navigate
代替.Navigate2
2)使用适当的等待时间
While ie.Busy Or ie.readyState < 4: DoEvents: Wend
3)更正Set ele
行的语法。您正在使用ByClassName
返回集合,因此是复数。您在s
末尾缺少element
。
正如您将ele
声明为单数(元素)一样,也许首先将集合设置为一个单独的变量,然后将该集合建立索引。
Dim eles As Object, ele As Object
Set eles = doc.getElementsByClassName("GDB3EHGDHLC")
Set ele = eles(0)
4)如果可能,您应该始终在其他属性上使用id,因为id通常可以更快地进行检索。图片(突出显示的元素)中有一个与该类名称相对应的ID。我不会尝试全部输入。请使用摘要工具共享您的HTML,方法是编辑您的问题,以便我们可以轻松地将您的html与您的html联系起来。
Set ele = doc.getElementById("gwt-debug-restOfIdStringGoesHere")