在AutoIT中使用AutomationID单击按钮

问题描述 投票:1回答:1

我正在使用AutoIT自动化VB6应用程序并遇到了一些问题。

该应用程序有一个“工具箱”窗口,其中包含一个SSTab控件,其中包含6行中的18个选项卡。有ThunderRT6CommandButton类的100多个实例。我的AutoIT脚本应该与特定按钮交互,到目前为止我一直在使用ControlClick

ControlClick($sToolboxes, '', '[CLASS:ThunderRT6CommandButton; INSTANCE:81]')

问题是当我切换到另一个选项卡并关闭工具箱窗口时,应用程序会记住哪个选项卡是打开的。这意味着下次打开工具箱窗口时,选项卡将以不同的顺序启动,并且按钮的所有实例编号都已更改。我甚至无法调用ControlClick并指定要单击的按钮的文本,因为这不是唯一的;大约20个按钮被简单地标记为“应用”。

使用Inspect.exe我注意到每个按钮都有一个独特的AutomationID,即使在关闭并重新打开工具箱窗口之后,它也是不变的。

有什么办法可以在AutoIT中使用他们的AutomationID点击按钮吗?

我能想到的唯一其他修复方法是让AutoIT脚本启动应用程序本身,以便每次脚本运行时工具箱的顺序都相同

autoit
1个回答
0
投票

AutoIT窗口信息工具显示AutomationID,但将其命名为“ID”:

我更改了我的脚本以包含ID:##而不是实例编号,它可以工作:

ControlClick($sToolboxes, '', '[CLASS:ThunderRT6CommandButton; ID:245]')
© www.soinside.com 2019 - 2024. All rights reserved.