我正在编写一个自动与某些网页交互的VBScript。我在最后一步遇到麻烦,脚本需要点击链接进行预订。每次链接仅在该时间免费时可用。我的代码的想法是简单地选择第一次可用(我最初虽然我可以通过使用Mid()和GetElementId来做到这一点,因为我知道每个链接ID的前7个字符,但无法使其工作)。该数组包含一天中所有可用时间的ID。已经采取了一些措施,以便表格上不再存在ID。
我有两个问题: -
1)getElementBy Id或Document.All.Item()。Click命令都不接受数组中的元素 - 我得到一个Object Required运行时错误。
2)如果getElementId找不到匹配的ID,它只会抛出一个Object required错误。我没想到这一点,我认为我的elem变量不会是null或者我可以测试它。
任何人都可以给我任何指示吗?
'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
答案 0 :(得分:0)
现在,除非我非常愚蠢,否则你将无法将变量置于不存在的元素中。
我唯一能想到的是添加:
On Error Resume Next
一开始,它会跳过错误消息。您可能需要自己单独处理错误。