Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “一个”究竟是什么;“隐式搜索”;它是如何工作的?_C#_Coded Ui Tests - Fatal编程技术网

C# “一个”究竟是什么;“隐式搜索”;它是如何工作的?

C# “一个”究竟是什么;“隐式搜索”;它是如何工作的?,c#,coded-ui-tests,C#,Coded Ui Tests,在编码的UI中,有一些方法可以在播放过程中等待特定事件,例如WaitForControlEnabled()和WaitForControlEnabled()。根据: 所有这些方法都具有以下行为: 如果等待成功,则这些方法返回true;如果等待失败,则返回false 等待操作的隐式超时由WaitForReadyTimeout属性指定。此属性的默认值为60000毫秒(一分钟) 这些方法有一个重载,以毫秒为单位执行显式超时但是,当等待操作导致隐式搜索控件时,或者当应用程序繁忙时,实际等待时间可能超过指

在编码的UI中,有一些方法可以在播放过程中等待特定事件,例如
WaitForControlEnabled()
WaitForControlEnabled()
。根据:

所有这些方法都具有以下行为:

  • 如果等待成功,则这些方法返回true;如果等待失败,则返回false
  • 等待操作的隐式超时由WaitForReadyTimeout属性指定。此属性的默认值为60000毫秒(一分钟)
  • 这些方法有一个重载,以毫秒为单位执行显式超时但是,当等待操作导致隐式搜索控件时,或者当应用程序繁忙时,实际等待时间可能超过指定的超时。
我的问题是,“隐式搜索”到底是什么?是否可以完全禁用它,或者在发生这种情况时让它显示在详细日志中

我在任何官方资料中都找不到对此的解释。根据我的理解,隐式搜索是在回放引擎无法找到确切的UI控件时执行的搜索。但是,它不同于
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等表达式时,可能会对三个控件中的每一个使用智能匹配