我们目前正在测试在弹出窗口中打开的应用程序部分。这些窗口是TitleWindow的子类。我们现在遇到的问题是弹出窗口似乎被多次注册,并且测试有时会在已经关闭的弹出窗口上执行(或者看起来如此)。
我认为这与我们关闭和移除弹出窗口的方式有关,但我无法在那里发现任何问题。在查看FlexMonkey源代码之后,我看到ADDED_TO_STAGE处理程序中有“TitleWindow”的显式检查,之后弹出窗口被添加为应用程序窗口。但似乎永远不会从“_windows”集合中删除弹出窗口。因此,当您在FlexMonkey中打开树视图时,会出现同一个弹出窗口类的多个实例。这也可能解释了为什么我们的测试有时似乎没有(视觉上)运行,而是正确执行和验证,因为它们是在弹出窗口的隐藏实例上运行的。我希望MonkeyAutomationManager也可以监听REMOVED_FROM_STAGE事件,并在关闭时删除弹出窗口。
我在这里遗漏了什么或这是一个(已知的)问题吗?
答案 0 :(得分:1)
我的猜测是,这不是问题,只是你的代码没有正确清理对象并将其从显示列表中删除。您还需要记住,从舞台中删除某些内容后,垃圾收集不会立即运行。有可能您的窗口,即使已经从舞台上移除,实际上仍在监听并响应事件。