activities
latest
false
重要 :
请注意此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

工作流活动

上次更新日期 2024年12月20日

验证等效文档

使用多个比较选项(包括以下比较类型)验证两个文档是否等效:
  • 比较字词。
  • 比较行。
  • 将字符作为char变量进行比较。
注意:支持的文档类型为 PDF

定义

命名空间: UiPath.Testing.API

程序集: UiPath.Testing.Activities.Api(在 UiPath.Testing.Activities.Api.dll 中)

VerifyDocumentsEquivalence(string, string, ComparisonType, CompareDocumentsOptions)

ComparisonResult VerifyDocumentsEquivalence(
    string baselinePath,
    string targetPath,
    [ComparisonType comparisonType],
    [CompareDocumentsOptions opts])ComparisonResult VerifyDocumentsEquivalence(
    string baselinePath,
    string targetPath,
    [ComparisonType comparisonType],
    [CompareDocumentsOptions opts])
baselinePath 字符串
用于比较时作为参考的基准文档的路径。
targetPath 字符串
与基准文档进行比较的文档路径。
comparisonType ComparisonType (可选)
比较文档时使用的比较类型。可选择以下选项:
  • ComparisonType.Char:比较文档中的每个字符 (char)。
  • ComparisonType.Line:比较文档中的每一行。
  • ComparisonType.Word:比较文档中的每个单词。
选项 CompareDocumentsOptions
此操作应用于的特定比较选项。要创建 CompareDocumentsOptions 类型的对象,请使用 TestingOptions.CompareDocuments 类

返回值

ComparisonResult

比较操作的结果,存储在 ComparisonResult 变量中。

示例

  1. 按字符比较 PDF
    在此示例中,我们将比较两个 PDF 文件,即电费单和水费单。比较在字符级别完成。这些 PDF 文件的路径由 firstBillsecondBill 变量表示。与 WithIgnoreWildcardRuleWithIgnoreRegexRule 方法一起提供的通配符规则和正则表达式规则用于忽略比较中的特定模式。例如,通配符规则 2022 和正则表达式规则 \d{1,2}/\d{1,2}/\d{4} 会在比较中忽略日期(假设它们的格式为 MM/DD/YYYY),因为它们在两个单独的账单中可能有所不同,并且与 Orchestrator 账单的结构无关。
    完成比较后,WithGenerateHtml 方法会创建比较的 HTML 报告,并会使用 Log 方法将找到的任何差异记录在日志中。
    var firstBill = @"C:\bills\2024.10\pdfs for compare\(electricity_bill.pdf";
    var secondBill = @"C:\bills\2024.10\pdfs for compare\(water_bill.pdf";
    
    var identicalCharCompareResult = testing.VerifyDocumentsEquivalence(
        firstBill, secondBill, 
        ComparisonType.Character, 
        TestingOptions.CompareDocuments()
            .WithGenerateHtml(@".\HtmlCompareResults\PDFCharCompare.html")
            .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
            .WithIgnoreRegexRule("RegexRule", @"\d{1,2}/\d{1,2}/\d{4}", true)
    );
    
    Log("pdf compare by char " + identicalCharCompareResult.AreEquivalent.ToString(),LogLevel.Error);var firstBill = @"C:\bills\2024.10\pdfs for compare\(electricity_bill.pdf";
    var secondBill = @"C:\bills\2024.10\pdfs for compare\(water_bill.pdf";
    
    var identicalCharCompareResult = testing.VerifyDocumentsEquivalence(
        firstBill, secondBill, 
        ComparisonType.Character, 
        TestingOptions.CompareDocuments()
            .WithGenerateHtml(@".\HtmlCompareResults\PDFCharCompare.html")
            .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
            .WithIgnoreRegexRule("RegexRule", @"\d{1,2}/\d{1,2}/\d{4}", true)
    );
    
    Log("pdf compare by char " + identicalCharCompareResult.AreEquivalent.ToString(),LogLevel.Error);
    
  2. 按单词比较 PDF
    在本示例中,我们将比较与上一个示例中相同的 PDF 文件:电费单和水费单。比较在单词级别完成。这些 PDF 文件的路径由 firstBillsecondBill 变量表示。与 WithIgnoreWildcardRuleWithIgnoreRegexRule 方法一起提供的通配符规则和正则表达式规则用于忽略比较中的特定模式。例如,通配符规则 2022 会在比较中忽略日期(假设其格式为 MM/DD/YYYY),因为它们在两个单独的账单中可能有所不同,并且与账单的结构无关。正则表达式规则 [$]\d+\.\d{2} 假定货币值的格式类似于 $XX.XX,会忽略货币值。
    完成比较后,WithGenerateHtml 方法会创建比较的 HTML 报告,并会使用 Log 方法将找到的任何差异记录在日志中。
    var firstBill = @"C:\bills\2024.10\pdfs for compare\(electricity_bill.pdf";
    var secondBill = @"C:\bills\2024.10\pdfs for compare\(water_bill.pdf";
    
    var differentWordCompareResult = testing.VerifyDocumentsEquivalence(
        firstBill, secondBill, 
        ComparisonType.Word, 
        TestingOptions.CompareDocuments()
            .WithGenerateHtml(@".\HtmlCompareResults\PDFWordCompareDiff.html")
            .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
            .WithIgnoreRegexRule("RegexRule", @"[$]\d+\.\d{2}", true)
    );
    
    Log("pdf compare by Word " + differentWordCompareResult.AreEquivalent.ToString(), LogLevel.Error);var firstBill = @"C:\bills\2024.10\pdfs for compare\(electricity_bill.pdf";
    var secondBill = @"C:\bills\2024.10\pdfs for compare\(water_bill.pdf";
    
    var differentWordCompareResult = testing.VerifyDocumentsEquivalence(
        firstBill, secondBill, 
        ComparisonType.Word, 
        TestingOptions.CompareDocuments()
            .WithGenerateHtml(@".\HtmlCompareResults\PDFWordCompareDiff.html")
            .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
            .WithIgnoreRegexRule("RegexRule", @"[$]\d+\.\d{2}", true)
    );
    
    Log("pdf compare by Word " + differentWordCompareResult.AreEquivalent.ToString(), LogLevel.Error);
    
  3. 按行比较 PDF
    在此示例中,与上一个示例类似,我们将比较两个 PDF 文件,即电费单和水费单。在这种情况下,比较是在行级别完成的。这些 PDF 文件的路径由 firstBillsecondBill 变量表示。与 WithIgnoreWildcardRuleWithIgnoreRegexRule 方法一起提供的通配符规则和正则表达式规则用于忽略比较中的特定模式。
    例如,通配符规则 2022 会在比较中忽略日期(假设其格式为 MM/DD/YYYY),因为它们在两个单独的账单中可能有所不同,并且与账单的结构无关。正则表达式规则 [$]\d+\.\d{2} 假定货币值的格式类似于 $XX.XX,会忽略货币值。
    完成比较后,WithGenerateHtml 方法会创建比较的 HTML 报告,并会使用 Log 方法将找到的任何差异记录在日志中。
    var firstBill = @"C:\bills\2024.10\pdfs for compare\(electricity_bill.pdf";
    var secondBill = @"C:\bills\2024.10\pdfs for compare\(water_bill.pdf";
    
    var largeLineCompareResult = testing.VerifyDocumentsEquivalence(
        firstBill, secondBill, 
        ComparisonType.Line, 
        TestingOptions.CompareDocuments()
            .WithGeneratePdf(@".\PDFCompareResults",@".\PDFCompareResults")
            .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
            .WithIgnoreRegexRule("RegexRule", @"[$]\d+\.\d{2}", true)
    );
    
    Log("Pdf compare by line " + largeLineCompareResult.AreEquivalent.ToString(), LogLevel.Error);var firstBill = @"C:\bills\2024.10\pdfs for compare\(electricity_bill.pdf";
    var secondBill = @"C:\bills\2024.10\pdfs for compare\(water_bill.pdf";
    
    var largeLineCompareResult = testing.VerifyDocumentsEquivalence(
        firstBill, secondBill, 
        ComparisonType.Line, 
        TestingOptions.CompareDocuments()
            .WithGeneratePdf(@".\PDFCompareResults",@".\PDFCompareResults")
            .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
            .WithIgnoreRegexRule("RegexRule", @"[$]\d+\.\d{2}", true)
    );
    
    Log("Pdf compare by line " + largeLineCompareResult.AreEquivalent.ToString(), LogLevel.Error);
    
在所有示例中,AreEquivalent 属性都会返回文档是否相等的信息。

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。