使用VBScript从HTML类元素检索数据

时间:2015-01-11 15:03:12

标签: html vbscript

我创建了一个基本的VBScript来改变霍尼韦尔WIFI恒温器的温度,该恒温器使用网络界面。 我可以访问该站点,登录,更改临时值并提交更改。 现在我想检索恒温器设置的温度。我知道在哪里可以找到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">&deg;</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 Element和SetTo2作为HTML集合返回。

根据上面的HTML代码,我相信我要找的22.0存储在“DisplayValue”HTML集合中。我该如何使用它?

请帮忙。

1 个答案:

答案 0 :(得分:0)

要获得集合的大小,请使用&#39; length&#39;

Msgbox SetTo2.length 'will print how many items are present in the collection

获取值(索引从0开始)

Msgbox SetTo2.Item(0).InnerText 'will print 22.0