不确定我是否理解这项任务,但我会尽我所能提供帮助。所以,窗口类名是一个动态的东西,这就是你用通配符掩盖它的原因。但是,如果您能够对其进行参数化,您会告诉您无论如何都想使用该类名。因此,似乎有一种方法可以在测试执行期间从某个地方获取类名。如果是这样,您可以将类名放入变量中,并将此变量作为参数传递给 WaitWindow 方法,并屏蔽标题以避免使用特定于语言的标题:
clsName := ....; // get it from somewhere
w := p.WaitWindow(clsName, '*', 1, 10000);
if w.Name='frmBasicOpt' then
begin
如果我的理解不正确并且无法事先知道类名,您可以考虑使用不同的方法来识别选项窗口而不指定标题。可能的解决方案包括:
当对话框打开时,它变为活动状态。因此,您可以通过 Sys.Desktop.ActiveWindow 获取对话框。
如果这是一个 MFC 应用程序,请注意窗口的 ControlID 属性——它可以在应用程序的代码中设置,用于对象识别。因此,您可以使用 FindChild 方法通过属性值查找窗口。
如果窗口有一些特定于该窗口的子对象,您可以创建一个函数来获取 Process 对象 (FindAllChildren) 的所有子窗口,遍历列表并检查其中哪些具有这些特定的子对象。
这对你有用吗?如果没有,那么有关您的任务的更多信息可能会帮助我提出其他建议。
亚历克斯