从集合中删除后,编码的UI测试对象不存在



使用带编码UI的记录器,我们测试UI以实现持续集成,但遇到了一个问题,即我们要测试的操作之一是删除操作。

我们检查要删除的列表项是否存在,然后按下delete,delete命令将其从正在绑定的集合中删除,我们断言该列表项已不存在,但它仍然表示它进行

我们认为可能需要几秒钟才能完全清除该对象,所以我们在断言之前等待了20秒,但仍然表示它存在

列表项的自动化id是真正唯一的,它们由字符串+列表中数字的id+列表项中文本块的值组成,所以它绝对不会与另一个元素混淆

对此有任何想法都将不胜感激?

编码UI中的UI映射保存了它以前看到的东西的缓存。这通常效果很好,因为它减少了查找东西所需的搜索量。有时缓存会保留已删除的内容。这个问题似乎就是这样。

刷新UI映射会清除缓存,并强制后续的UI映射访问进行另一次搜索。从而重新填充缓存。

没有必要清除整个缓存。通常只需要刷新的一部分,这可以通过调用相关UI控件上的...Find()方法来完成。

Stack Overflow中介绍了一个类似的问题,它还展示了一种理解UI映射的哪个部分需要刷新的方法。

最新更新