【问题标题】:VBScript - How do I create a new sub that focuses on an existing IE window WITHOUT creating a new object?VBScript - 如何在不创建新对象的情况下创建专注于现有 IE 窗口的新子?
【发布时间】:2021-05-01 18:43:06
【问题描述】:

我正在尝试为必须登录的基于 Web 的系统上的用户创建一个自动化工具。我无法使用 CreateObject,因为这会打开一个新的 IE 窗口,让用户再次登录,然后将他们踢出当前会话。

如何重写以下内容,使其以现有的 IE 窗口为目标并在不使用 CreateObject 的情况下单击按钮?

Sub exampleOne
    Dim ie, doc
    set ie = 'cannot use CreateObject - what else can I do? 
    set doc = ie.document
    wshell.AppActivate("Sample Title")      
    doc.getElementByID("button").Click
End Sub

【问题讨论】:

标签: internet-explorer automation vbscript createobject


【解决方案1】:

我建议您尝试参考下面的示例,可能会帮助您聚焦现有的 IE 窗口并单击网页上的按钮。

示例 VBScript:

Set shell = WScript.CreateObject("WScript.shell")

Dim objInstances, objIE, IE
Set objInstances = WScript.CreateObject("Shell.Application").windows
If objInstances.Count > 0 Then 
    For Each objIE In objInstances
        If InStr(objIE.LocationURL,"https://Your_site_URL_here...") > 0 then  '/// Modify the URL on this line...
        Set IE = objIE
        End if
Next
End If
shell.AppActivate ("Internet Explorer")

Wait IE, 2000
IE.document.getElementById("btn1").Click

Wait IE, 2000

'IE.Quit

Sub Wait(IE, ms)
    Do
        WScript.Sleep ms
    Loop While IE.ReadyState < 4 And IE.Busy
End Sub

另外,您可以尝试理解代码示例尝试根据自己的需求进行修改。

感谢您的理解。

【讨论】:

  • 感谢您提供此示例。但是,我收到 WScript 所需的对象错误:Set shell = WScript.CreateObject("WScript.shell").
  • 此外,我收到另一个需要对象的错误:IE.document.getElementById(" ")
  • 您能告诉我们您究竟是如何尝试运行此代码的吗?我建议您尝试将代码保存在.vbs 文件中并修改 URL 和 Button ID。然后尝试双击文件将执行代码。请看我的测试结果here。
猜你喜欢
  • 2015-01-13
  • 2012-05-01
  • 2012-04-14
  • 2022-11-20
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多