VBScript - 如何在不创建新对象的情况下创建一个专注于现有 IE 窗口的新子?

问题描述

我正在尝试为必须登录的基于 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

解决方法

我建议您尝试参考下面的示例可能会帮助您聚焦现有的 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

此外,您可以尝试理解代码示例,根据自己的要求尝试修改它。

感谢您的理解。