如何使用外部 VBScript 在网页上单击 Link?

How to Click a Link on a webpage using external VBScript?

我正在尝试使用 VBScript 执行以下操作 打开 IE

导航到页面 - 等待 IE 加载 - 单击超链接

我写了下面的代码,但它失败了

Dim IE
Dim Helem

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = 1 
IE.navigate "www.mypage.com"

Do While IE.ReadyState = 4
 WScript.Sleep 100
Loop

IE.Document.getElementById("helpDesk").Click

但是总是报下面的错误

接口未知或未指定错误等

下一个脚本应该没有错误(不用多说不知道 "helpDesk" 元素的更多属性):

Dim IE
Dim Helem

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = 1 
IE.navigate "www.mypage.com"

While IE.Busy
    Wscript.Sleep 100
Wend

Do Until IE.ReadyState = 4
 WScript.Sleep 100
Loop

IE.Document.getElementById("helpDesk").Click()

请注意 Busy 属性 获取一个(布尔)值,指示该对象是否正在进行导航或下载操作。

请注意 click() 方法模拟鼠标单击元素;此方法可用于执行对元素的单击,就好像用户手动单击它一样。

注意下一个 readyState 属性 枚举(常量名称在 VBScript 中不是固有的):

  • READYSTATE_UNINITIALIZED ​ (0) 对象已创建,但未初始化(未调用open方法)。
  • READYSTATE_LOADING ​ (1)打开了一个请求,但是还没有调用send方法
  • READYSTATE_LOADED ​ (2) 发送方法已被调用。尚无可用数据。
  • READYSTATE_INTERACTIVE ​ (3) 部分数据已接收;然而,responseText 不可用。
  • READYSTATE_COMPLETE ​ (4) 接收到所有数据。

在 IE 状态检查后尝试额外的文档状态检查:

Do Until Not IE.Busy And IE.ReadyState = 4
    WScript.Sleep 100
Loop

Do Until IE.Document.ReadyState = "complete"
    WScript.Sleep 100
Loop

经过一番挣扎,我发现了问题所在 IE.Document.getElementById("helpDesk").点击

应该是

IE.document.getElementById("helpDesk").点击

'd' 在文档中是小写