【问题标题】:Failed to compare images with Imagemagick with robot framework on Windows environment无法在 Windows 环境中将图像与 Imagemagick 与机器人框架进行比较
【发布时间】:2018-03-28 04:16:34
【问题描述】:

我正在使用 Imagemagick 比较 windows 环境中的两个屏幕截图。

https://blog.codecentric.de/en/2017/09/robot-framework-compare-images-screenshots/

   *** Settings ***
Library   String
Library   OperatingSystem

*** Variables ***
${IMAGE_COMPARATOR_COMMAND}   C:\\"Program Files"\\ImageMagick-7.0.7-Q16\\convert.exe


*** Test Cases ***
Image Comparison Ok
  Compare Images    C:/Users/user/imagecompare/Test/src/reference-screenshots/reference-1.png    C:/Users/user/imagecompare/Test/src/test-screenshots/test-1.png   0.1


Image Comparison NOk
  Compare Images    C:/Users/user/imagecompare/Test/src/reference-screenshots/reference-1.png    C:/Users/user/imagecompare/Test/src/test-screenshots/test-1.png   0.1

*** Keywords ***
Compare Images
   [Arguments]      ${Reference_Image_Path}    ${Test_Image_Path}    ${Allowed_Threshold}
   ${TEMP}=         Replace String     ${IMAGE_COMPARATOR_COMMAND}    __REFERENCE__     ${Reference_Image_Path}
   ${COMMAND}=      Replace String     ${TEMP}    __TEST__     ${Test_Image_Path}
   Log              Executing: ${COMMAND}
   ${RC}            ${OUTPUT}=     Run And Return Rc And Output     ${COMMAND}
   Log              Return Code: ${RC}
   Log              Return Output: ${OUTPUT}
   ${RESULT}        Evaluate    ${OUTPUT} < ${Allowed_Threshold}
   Should be True   ${RESULT}

但遇到以下问题:

    KEYWORD BuiltIn . Log Return Output: ${OUTPUT}
Documentation:  
Logs the given message with the given level.
Start / End / Elapsed:  20171016 15:45:38.561 / 20171016 15:45:38.562 / 00:00:00.001
15:45:38.561    INFO    Return Output: The system cannot find the path specified.   
00:00:00.003KEYWORD ${RESULT} = BuiltIn . Evaluate ${OUTPUT} < ${Allowed_Threshold}
Documentation:  
Evaluates the given expression in Python and returns the results.
Start / End / Elapsed:  20171016 15:45:38.562 / 20171016 15:45:38.565 / 00:00:00.003
15:45:38.563    FAIL    Evaluating expression 'The system cannot find the path specified. < 0.1' failed: SyntaxError: invalid syntax (<string>, line 1)

【问题讨论】:

    标签: imagemagick robotframework


    【解决方案1】:

    如果您想在 ImageMagick v7 中使用 "legacy" convert 命令,您需要在安装 ImageMagick 期间单击显示 " 的选项安装旧版工具”

    或者,使用新命令:

    magick input.png ... output.png
    

    而不是:

    convert input.png ... output.png
    

    因此,如果您知道如何将配置变量 IMAGE_COMPARATOR_COMMAND 更改为 C:\\"Program File"\\ImageMagick-7.0.7-Q16\\magick,则无需重新安装 ImageMagick 即可。

    【讨论】:

    • 它不起作用我尝试了上述解决方案,并且为了您的信息我已经安装了旧实用程序(转换器)
    • 请检查您的IMAGE_COMPARATOR_COMMAND中的路径 - 通常是C:\\Program FileSSSS...
    • 下面是 IMAGE_COMPARATOR_COMMAND C:\Program Files\ImageMagick-7.0.7-Q16 的路径
    • 这不是您在上述设置中显示的内容 - 您似乎错过了 Program Files 上的 s
    • 已更正变量名但仍面临问题 --> 默认情况下,“文件”的图像格式由其幻数确定。要指定特定的图像格式,请在文件名前加上图像格式名称和冒号(即 ps:image)或将图像类型指定为文件名后缀(即 image.ps)。对于标准输入或输出,将“文件”指定为“-”。 ,第 1 行)
    【解决方案2】:

    ${IMAGE_COMPARATOR_COMMAND} C:/"Program Files"/ImageMagick-7.0.10-Q16/convert.exe REFERENCE TEST -metric RMSE -compare -format " %[失真]" 信息:

    将上面的 IMAGE_COMPARATOR_COMMAND 替换为适合您路径的更改。 它对我有用。 谢谢

    【讨论】:

      猜你喜欢
      • 2018-03-18
      • 2015-11-01
      • 2019-07-07
      • 1970-01-01
      • 2011-06-20
      • 2018-05-08
      • 2014-05-15
      • 2012-07-24
      • 1970-01-01
      相关资源
      最近更新 更多