如何等待第三方应用程序完成更新。 GUI

时间:2018-02-06 20:48:38

标签: c# ui-automation com-interop win32gui

我正在使用C#的非托管Windows自动化API来自动化第三方应用程序。我用它来选择第三部分应用程序中列表A中的列表项。这会导致第三方应用程序更改列表B中的列表项。列表B项目是列表A中选择项目的逻辑子元素(不是自动化树!)。这需要不确定的时间量。是否有回调或属性等我可以用来检查此更新是否已完成?

1 个答案:

答案 0 :(得分:0)

您需要实现某种类型的重试条件,并为其提供可以评估的Predicate。我创建了一个名为Mulligan的开源项目,它封装了TestStack.WhiteFlaUI用于允许重试的逻辑。

我制作这个框架的原因是我可以收集有关重试何时发生但测试成功的更多信息(意味着谓词不正确),但逻辑与前面提到的框架非常相似。

对于列表,我通常做的是添加一个非常短的重试,如果网格中没有元素。然后我得到元素的计数,然后在列表中添加新的东西,然后验证计数是先前的计数+添加的元素。我开始这样做是因为我们有一个场景,我只检查新元素,但我们引入了一个错误,除了新元素之外所有元素都丢失了......对于我们应用程序中的一些列表,我们有一个覆盖加载微调器,我等到它完成运行以启动前面提到的等待以获得计数。