跳转到主要内容
将 Extraction Rules 活动编译,以验证元素属性和搜索条件,然后将活动与文档匹配,以定位对象并验证检测的准确性。 在编译 Extraction Rules 活动时,会检查用于指定图像对象搜索条件的元素属性是否有效。

编译检查

将检查以下内容:
  1. 元素属性。 用于指定对象参数和搜索区域的元素属性只能引用位于当前搜索元素之上的 Search Elements 树中的元素。否则,程序会标出无效元素。
  2. 字段属性。 字段属性不能包含指向已排除元素或不存在元素的链接。
  3. FlexiLayout 语言中的正则表达式
    • 代码中不应包含任何语法错误。
    • Search Conditions 部分中指定的附加条件只能引用位于当前搜索元素之上的 Search Elements 树中描述的元素。在 Hypotheses Evaluation 部分中指定的附加条件只能引用当前搜索的元素本身以及位于其之上的 Search Elements 树中的元素。
    • 代码中使用的所有全局常量都必须已定义。
    • 代码中使用的所有变量都必须已定义并完成初始化。
    • 代码本身只能调用在该代码段中可用的实体。
    • 某一类型的元素不应被赋予另一类型元素的属性(例如,Static Text 不能具有 Max width 属性)。
当您退出活动编辑器以及单击 MatchTest Activity 时,Extraction Rules 活动会自动编译。如果在编译过程中发现任何错误,则无法继续匹配。包含错误的搜索元素将被标记为错误图标。将鼠标悬停在该图标上可以查看详细的错误说明。要继续操作,您必须更正这些错误,确保您的活动符合上述条件。

匹配过程

匹配 是指 Advanced Designer 根据元素属性中指定的条件查找图像对象的过程。程序会沿着 Search Elements 树逐一向下遍历,尝试定位各个元素所描述的所有对象。

匹配示例

假设我们有一个组元素 A,它由两个简单元素 ab 以及一个组元素 B 组成,而组元素 B 又由元素 aabb 组成。再假设我们另外还有两个简单元素 cd。元素 Acd 处于同一嵌套层级。在匹配 Extraction Rules 活动时,程序将按以下顺序尝试定位对应的对象:abaabbcd
Element A
    Element a
    Element b
    Element B
        Element aa
        Element bb
Element c
Element d
如果程序能够定位到所有必需元素对应的对象,匹配即会成功。若程序未能检测到任何一个必需对象,匹配将终止,您需要编辑该活动。

匹配命令

要对 Extraction Rules 活动执行匹配,您可以使用以下命令之一:
  • Match 将活动与选定的文档进行匹配,但不会在 Activity Editor 的 Results 选项卡中显示结果。此方法可在调试活动时使用,用于检查特定元素属性是否有效。
  • Test Activity 将活动与活动集中的每个文档进行匹配。匹配结果会显示在统计信息中,用于比较当前版本的 Extraction Rules 活动与其早期版本之间的匹配质量。
注意: Extraction Rules 活动的编译和匹配状态显示在通知日志中(可通过单击右上角的铃铛图标打开)。您可以在通知日志中单击相应通知,直接跳转到匹配结果。

验证活动

要快速检查提取规则活动是否存在错误,点击“更多”icon,然后点击 验证活动 (Verify Activity)。提取规则活动将被编译,但不会执行匹配。