VBScript - 将数组元素放入GetElementById

时间:2012-01-11 22:05:45

标签: vbscript

我正在编写一个自动与某些网页交互的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

1 个答案:

答案 0 :(得分:0)

现在,除非我非常愚蠢,否则你将无法将变量置于不存在的元素中。

我唯一能想到的是添加:

On Error Resume Next

一开始,它会跳过错误消息。您可能需要自己单独处理错误。