autoit - 在 AutoIT 中使用 AutomationID 单击按钮
问题描述
我正在使用 AutoIT 自动化一个 VB6 应用程序并且遇到了一些问题。
该应用程序有一个“工具箱”窗口,其中包含一个SSTab
6 行中有 18 个选项卡的控件。该类有 100 多个实例ThunderRT6CommandButton
。我的 AutoIT 脚本应该与特定按钮交互,到目前为止我一直在使用ControlClick
:
ControlClick($sToolboxes, '', '[CLASS:ThunderRT6CommandButton; INSTANCE:81]')
问题是,当我更改为不同的选项卡并关闭工具箱窗口时,应用程序会记住打开了哪个选项卡。这意味着下次我打开工具箱窗口时,选项卡将以不同的顺序启动,并且按钮的所有实例编号都已更改。我什至不能调用ControlClick
并指定要单击的按钮的文本,因为这不是唯一的;大约 20 个按钮被简单地标记为“应用”。
使用Inspect.exe我注意到每个按钮都有一个唯一AutomationID
性,即使在改变标签后关闭和重新打开工具箱窗口时也是如此。
有什么方法可以让我在 AutoIT 中使用它们的 AutomationID 单击按钮?
我能想到的唯一其他解决方法是让 AutoIT 脚本启动应用程序本身,以便每次脚本运行时工具箱的顺序相同
解决方案
推荐阅读
- javascript - 如何将Cookie设置为所有fileDownlink,而不仅仅是一个javascript链接?
- angular - 在 Angular 项目中使用 JSXCompressor
- asp.net - 通过 WCF 中的 API 获取图像
- php - 数据值检索与数据库中的不同 - Laravel
- angular7 - 在Angular7中单击按钮时加载组件
- java - 通过按下同一场景中的按钮来更改标签的“文本”有效,但如果按钮不在同一场景中,则它不起作用。为什么?
- django - 如何使用 django 查询检查表中可用或不可用的数据?
- talend - 从源表中读取动态列更改
- c# - 无法将 System.IO.Stream 隐式转换为 System.IO.MemoryStream。C#
- version-control - 完全本地和有限制的版本控制?