C# “一个”究竟是什么;“隐式搜索”;它是如何工作的?
在编码的UI中,有一些方法可以在播放过程中等待特定事件,例如C# “一个”究竟是什么;“隐式搜索”;它是如何工作的?,c#,coded-ui-tests,C#,Coded Ui Tests,在编码的UI中,有一些方法可以在播放过程中等待特定事件,例如WaitForControlEnabled()和WaitForControlEnabled()。根据: 所有这些方法都具有以下行为: 如果等待成功,则这些方法返回true;如果等待失败,则返回false 等待操作的隐式超时由WaitForReadyTimeout属性指定。此属性的默认值为60000毫秒(一分钟) 这些方法有一个重载,以毫秒为单位执行显式超时但是,当等待操作导致隐式搜索控件时,或者当应用程序繁忙时,实际等待时间可能超过指
WaitForControlEnabled()
和WaitForControlEnabled()
。根据:
所有这些方法都具有以下行为:
- 如果等待成功,则这些方法返回true;如果等待失败,则返回false
- 等待操作的隐式超时由WaitForReadyTimeout属性指定。此属性的默认值为60000毫秒(一分钟)
- 这些方法有一个重载,以毫秒为单位执行显式超时但是,当等待操作导致隐式搜索控件时,或者当应用程序繁忙时,实际等待时间可能超过指定的超时。
SmartMatch
,因为即使我禁用了SmartMatch
:
Playback.PlaybackSettings.SmartMatchOptions = SmartMatchOptions.None;
隐式搜索仍在进行。我知道这一点,因为我故意为UI控件的搜索属性指定了一个不精确的值,但仍然找到了该控件。这花了很长时间,当我查看详细日志时,没有提到
SmartMatch
,也没有任何警告。考虑表达式this.UIMap.UIOne.UITwo.uithre
。要访问UIThree
控件,需要找到UITwo
,要找到它,需要找到UIOne
。UIOne
和UITwo
的查找是隐式查找
另一种方法是编写以下语句:
this.UIMap.UIOne.Find();
this.UIMap.UIOne.UITwo.Find();
... this.UIMap.UIOne.UITwo.UIThree ...
问题指出:
根据我的理解,隐式搜索是一种
播放引擎找不到确切的UI控件时执行
这是一个错误的解释。隐式搜索涉及在具有多个由点链接的属性的表达式中查找更高级别的控件。当无法找到精确匹配时,可以调用智能匹配。当使用诸如this.UIMap.UIOne.UITwo.UIThree等表达式时,可能会对三个控件中的每一个使用智能匹配