无法在 Windows 环境中将图像与 Imagemagick 与机器人框架进行比较
Posted
技术标签:
【中文标题】无法在 Windows 环境中将图像与 Imagemagick 与机器人框架进行比较【英文标题】:Failed to compare images with Imagemagick with robot framework on Windows environment 【发布时间】: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)
【问题讨论】:
【参考方案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 替换为适合您路径的更改。 它对我有用。 谢谢
【讨论】:
以上是关于无法在 Windows 环境中将图像与 Imagemagick 与机器人框架进行比较的主要内容,如果未能解决你的问题,请参考以下文章
无法在 SwiftUI 中将类型“图像”的值转换为预期的参数类型“字符串”
在 Windows Phone 和 Silverlight 中将 Image Feed 转换为 BitmapImage
无法在 Xamarin C# 中将图像设置为 UIButton