使用 VBScript 从 HTML Class 元素中检索数据
Retrieving data from an HTML Class Element using VBScript
我创建了一个基本的 VBScript 来更改我的 Honeywell WIFI 恒温器的温度,它使用 Web 界面。
我可以访问站点、登录、更改温度并提交更改。
现在我想检索恒温器设置的温度。我知道在哪里可以找到IE 源文件中的信息,但我不知道如何调用它。
这是包含我需要的内容的 HTML 元素。
<div id="NonAutoHeatSetpt" style="">
<div class="SetPtContainer">
<div class="CurrSetptHdr">Set To</div>
<div class="CurrentSetpt"><div class="DisplayValue">22.0</div><span class="NoBold">°</span></div>
</div>
<div class="SetPtButtons" style="">
<div id="NonAutoModeHeatUpBtn" class="UpBtn unselectable"> </div>
<div id="NonAutoModeHeatDownBtn" class="DownBtn unselectable"> </div>
</div>
</div>
我需要检索 22.0,这样我就可以创建一个循环来不断降低温度,直到达到目标温度(这将在我的脚本中确定)。
这是我目前的代码。
Sub WaitForLoad 'Sub to wait for browser to load
Do While IE.Busy
WScript.Sleep 10
Loop
End Sub
On Error Resume Next
Dim IE
Dim SetTo1
Dim SetTo2
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://mytotalconnectcomfort.com/portal/"
WaitForLoad
IE.Document.All.Item("UserName").Value = "myemail@yahoo.ca"
IE.Document.All.Item("Password").Value = "MyPassword"
IE.Document.All.Item("submit").Click
WaitForLoad
IE.Document.All.Item("NonAutoModeHeatDownBtn").Click 'Clicks on the decrease temp btn
IE.Document.All.Item("SubmitBtn").Click 'Submit changes to thermostat
WaitForLoad
Set SetTo1 = IE.Document.getElementByID("NonAutoHeatSetpt")
Set SetTo2 = SetTo1.getElementsByClassName("DisplayValue")
SetTo1 作为 HTML 元素返回,SetTo2 作为 HTML 集合返回。
根据上面的 HTML 代码,我认为我要查找的 22.0 存储在 "DisplayValue" HTML 集合中。我该如何使用它?
请帮忙。
要获取集合的大小,请使用 'length'
Msgbox SetTo2.length 'will print how many items are present in the collection
获取值(索引从0开始)
Msgbox SetTo2.Item(0).InnerText 'will print 22.0
我创建了一个基本的 VBScript 来更改我的 Honeywell WIFI 恒温器的温度,它使用 Web 界面。 我可以访问站点、登录、更改温度并提交更改。 现在我想检索恒温器设置的温度。我知道在哪里可以找到IE 源文件中的信息,但我不知道如何调用它。 这是包含我需要的内容的 HTML 元素。
<div id="NonAutoHeatSetpt" style="">
<div class="SetPtContainer">
<div class="CurrSetptHdr">Set To</div>
<div class="CurrentSetpt"><div class="DisplayValue">22.0</div><span class="NoBold">°</span></div>
</div>
<div class="SetPtButtons" style="">
<div id="NonAutoModeHeatUpBtn" class="UpBtn unselectable"> </div>
<div id="NonAutoModeHeatDownBtn" class="DownBtn unselectable"> </div>
</div>
</div>
我需要检索 22.0,这样我就可以创建一个循环来不断降低温度,直到达到目标温度(这将在我的脚本中确定)。
这是我目前的代码。
Sub WaitForLoad 'Sub to wait for browser to load
Do While IE.Busy
WScript.Sleep 10
Loop
End Sub
On Error Resume Next
Dim IE
Dim SetTo1
Dim SetTo2
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://mytotalconnectcomfort.com/portal/"
WaitForLoad
IE.Document.All.Item("UserName").Value = "myemail@yahoo.ca"
IE.Document.All.Item("Password").Value = "MyPassword"
IE.Document.All.Item("submit").Click
WaitForLoad
IE.Document.All.Item("NonAutoModeHeatDownBtn").Click 'Clicks on the decrease temp btn
IE.Document.All.Item("SubmitBtn").Click 'Submit changes to thermostat
WaitForLoad
Set SetTo1 = IE.Document.getElementByID("NonAutoHeatSetpt")
Set SetTo2 = SetTo1.getElementsByClassName("DisplayValue")
SetTo1 作为 HTML 元素返回,SetTo2 作为 HTML 集合返回。
根据上面的 HTML 代码,我认为我要查找的 22.0 存储在 "DisplayValue" HTML 集合中。我该如何使用它?
请帮忙。
要获取集合的大小,请使用 'length'
Msgbox SetTo2.length 'will print how many items are present in the collection
获取值(索引从0开始)
Msgbox SetTo2.Item(0).InnerText 'will print 22.0