如何使用外部VBScript单击网页上的链接?

时间:2015-02-27 07:46:53

标签: 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

但它始终保持以下错误

界面未知或未指定错误等

3 个答案:

答案 0 :(得分:0)

下一个脚本应该没有错误(仅此而已,请不要知道"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)已调用send方法。目前还没有数据。
  • READYSTATE_INTERACTIVE ​(3)已收到一些数据;但是,responseText不可用。
  • READYSTATE_COMPLETE ​(4)已收到所有数据。

答案 1 :(得分:0)

在IE状态检查后尝试其他文档状态检查:

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

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

答案 2 :(得分:0)

经过多次努力,我发现了问题所在 IE.Document.getElementById( “服务支持”),点击

应该是

IE.document.getElementById( “服务支持”),点击

'd'在Document

中是小写的