1
我在寫一個自動與某些網頁交互的VBScript。我在腳本需要點擊鏈接進行預訂的最後一步遇到了麻煩。每次的鏈接只有在免費的時候纔可用。我的代碼的想法是簡單地選擇第一次可用(我最初雖然我可以通過使用Mid()和GetElementId來做到這一點,因爲我知道每個鏈接ID的前7個字符,但不能得到這個工作)。該數組包含一天中所有可能時間的ID。有些已經被拿走了,因此ID將不再存在於表格中。VBScript - 將數組元素放入GetElementById
我有2個問題: - 。
1)無論getElementBy ID或Document.All.Item()點擊命令將接受來自數組中的元素 - 我得到一個必選對象運行時錯誤。
2)如果getElementId找不到匹配的ID,它只會拋出一個Object必需的錯誤。我並沒有期待這一點,我認爲我的elem變量不會是空的,我可以測試這個。
任何人都可以給我任何指針?
'This is a shortened version of my array- there are lots more times!
Times(0)="bookBtn0810"
Times(1)="bookBtn0818"
Times(2)="bookBtn0826"
Dim TimeAvail
Dim i
Dim elem
TimeAvail = "No"
i = 0
Do While (TimeAvail = "No") or (i<3)
Set elem = IE.Document.GetElementById(Chr(34) & Times(i) & Chr(34)) 'Chr(34) is to add ""
if elem is nothing then
TimeAvail = "No"
i=i+1
else
TimeAvail = "Yes"
IE.Document.All.Item(Chr(34) & Times(i) & Chr(34)).click
end if
Loop
你真的需要Chr(34)嗎? – 2012-01-12 12:31:06
我對「Set elem = IE.document.get」有些困惑 - 你需要「set」和「ie。」嗎? 如果ID不存在,則拋出錯誤是我期望的行爲。 你在hta中運行這段代碼是什麼? WScript的?一個網頁? CSCRIPT? – Simon 2012-01-12 18:48:58
我假設我需要Chr(34)以便在將每個數組元素傳遞給get ElementById並單擊方法時包含雙引號字符。 – BadGolfer 2012-01-12 22:03:42