You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用UFT在Edge浏览器中操作文件选择对话框时无法定位窗口求助

UFT 文件上传窗口定位问题解决方案

问题描述

我需要通过UFT实现网站文件上传:点击上传按钮后弹出文件资源管理器窗口,用UFT在此窗口中选择文件。以下是我的代码:

Option Explicit

Dim objType, value, bcName
objType = "File"
value = "Dialog select"
bcName = objType & " " & value


Dim pDoit, pKommentar, pMyFile, pMyFolder

pDoit = CBool(evalVarAndOffset(Parameter("doit")))

If pDoit = True Then
    getUserTempFolder   

    pKommentar = Parameter("Kommentar")
    pMyFolder = evalVarAndOffset(Parameter("Ordner"))
    pMyFile = replaceUnwantedCharsFromString(evalVarAndOffset(Parameter("Datei")))


    Window("Profil 1 - Microsoft​ Edge").Dialog("Öffnen").Activate
    Window("Profil 1 - Microsoft​ Edge").Dialog("Öffnen").WinEdit("Dateiname:").Set pMyFolder & pMyFile
    Window("Profil 1 - Microsoft​ Edge").Dialog("Öffnen").WinButton("Öffnen").Click


    SQS_ReportEvent micPass, "BC '&" & bcName & "' ausgeführt. Datei: " & pMyFile, "Datei: " & pMyFile
Else
    SQS_ReportEvent micPass, "BC '&" & bcName & "' übersprungen.", "BC '&" & bcName & "' übersprungen."
End If


SQS_ReportEvent micDone, "BC '&" & bcName & "' ausgeführt.", "BC '&" & bcName & "' ausgeführt."
SQS_ActionFinish

问题:尽管通过UFT对象识别器获取到窗口名称为“Profil 1 - Microsoft Edge”,但UFT无法找到该窗口,报错信息如下:

对象库中未找到“Profil 1 - Microsoft Edge”窗口对象。
请检查对象库以确认该对象是否存在,或查找该对象的正确名称。
第(22)行:Window("Profil 1 - Microsoft​ Edge").Dialog("Öffnen").Activate。
提示:如果应用程序中的对象已更改,维护运行模式可帮助您识别并更新步骤和/或对象库中的对象。

解决方案

1. 校验对象库配置

  • 打开UFT对象库,确认是否存在名为“Profil 1 - Microsoft Edge”的Window对象。若不存在,重新录制上传流程或手动添加该对象到库中,添加时确保识别属性(如标题、类名、创建时间)与当前Edge窗口完全匹配。
  • 检查代码中的窗口名称是否有隐藏字符(比如“Microsoft​ Edge”中的空格可能是不可见的特殊字符),直接从对象库复制准确的对象名称替换代码中的字符串。

2. 改用稳定的窗口识别属性

Edge窗口标题会随页面内容变化,依赖固定标题易失效,可改用正则匹配或类名定位:

' 用正则匹配标题+类名定位
Window("regexpwndtitle:=.*Microsoft Edge", "micclass:=Browser").Dialog("Öffnen").Activate

' 或用创建时间定位最新打开的浏览器窗口
Window("creationtime:=0").Dialog("Öffnen").Activate

3. 添加等待逻辑确保窗口加载

文件对话框弹出可能存在延迟,添加存在性检查避免过早操作:

Dim fileDialog
Set fileDialog = Window("Profil 1 - Microsoft Edge").Dialog("Öffnen")
If fileDialog.Exist(10) Then
    fileDialog.Activate
    fileDialog.WinEdit("Dateiname:").Set pMyFolder & pMyFile
    fileDialog.WinButton("Öffnen").Click
Else
    SQS_ReportEvent micFail, "文件对话框未找到", "等待10秒后仍未弹出文件选择窗口"
End If

4. 绕过窗口定位的替代方案

如果窗口定位始终有问题,可直接用SendKeys操作,无需定位Edge窗口:

' 点击上传按钮后等待对话框弹出
Wait 2
' 直接输入文件路径
SendKeys pMyFolder & pMyFile
Wait 1
' 按回车确认选择
SendKeys "{ENTER}"

内容的提问来源于stack exchange,提问作者T.Naz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 16:16:12