当前位置: 首页 > 面试题库 >

与Selenium的模糊屏幕截图比较

司寇正志
2023-03-14
问题内容

我正在使用Selenium自动执行网页功能测试。推出新代码时,对像素进行像素比较非常重要,因此我们使用Selenium进行屏幕截图,并比较base64编码的字符串以查看是否有任何更改。

我们发现,实际上很难获得完全的像素一致性,尤其是图像。我希望将轻微的模糊/渲染伪影算作“通过”而不是“失败”,所以我想知道是否存在一种进行模糊比较的方法,以使我们的测试不那么脆弱。

我当时正在考虑也许以base64字符串之间的Levenshtein距离为起点,但我真的不知道这是否是一个好方法,或者应该将“页面上移动的内容”与“渲染”区分开来的容差应该是多少?神器”。有什么想法/方法吗?


问题答案:

因此,我最终使用了ImageMagick命令行工具(因为为什么要重新发明图像比较)。“比较”工具的“峰值绝对错误”度量标准告诉您在两幅图像相同之前,需要模糊多少像素。这似乎工作得很好。对于图像有轻微图形失真的图像,可能有很多像素不匹配,但是轻微的模糊足以使它们匹配。但是对于实际上是不同的两个图像,即使大多数像素可能都匹配,但这些图像也往往不会非常不同。现在,我正在检查PAE小于15%,以查看图像是否应视为相同图像。我使用的命令行是:

 compare -metric PAE  original.png new.png comparison.png

有关ImageMagick比较工具的文档位于:http :
//www.imagemagick.org/script/compare.php



 类似资料:
  • 我正在使用Selenium和Chrome驱动程序来拍摄一个站点的屏幕截图,并将窗口尺寸设置为800x600。当我看到.png时,它比这个值更大,并且每个屏幕分辨率都有变化。差异大于滚动条,将其设置为捕获800x600,它将产生1179x704图像(我的监视器res是3840 x 2160)。这也会根据监视器上的分辨率而改变。有没有一种方法可以设置它,这样无论屏幕分辨率是多少,输出都是一样的? 我试

  • 在Linux下有很多屏幕载图的工具,下面简单介绍一下: 在GNOME桌面中自带了一个屏幕截图工具,位于“动作”栏内。该工具功能很少,只能截取当前屏幕。 在GMIP中也可截图,在“文件”--“获取”菜单下有一个“屏幕抓图”选项可进行屏幕截图。它可截取任意图窗口的内容,并自动输入到GMIP中,我们可方便地进行处理和保存。 安装ImageMagick软件,它有一个工具叫import可用于屏幕截图。该工具

  • 点击按钮进行截屏,可以将截屏图像保存到相册中。 作者说:听说会和苹果的策略有冲突,应用如果上架可能会被拒绝。这个估计是看人品了吧。经过测试发现,如果先弹出对话框,然后再截屏,似乎并不能把对话框也给保存下来。 [Code4App.com]

  • 问题内容: 我只需要当前视口的屏幕截图,尤其要注意滚动位置。基本上是当前Chrome驱动程序的功能。 从我所阅读的内容看来,这应该是完全可能的,但是由于某些原因,screenshot命令始终努力获取完整的文档截图。实际上,IE驱动程序会拍摄多个视口镜头,然后将它们缝合在一起。 我使用的是Ruby Webdriver,无论如何我都看不到仅截取视口的屏幕截图。可能吗? 问题答案: 在处理WebDriv

  • 我目前正在尝试实现Ashot来为我当前的项目截图,它正在为桌面工作。 但我想知道如何在iOS和Android设备上实现它,互联网上没有太多信息。 我使用了以下视口,它正在为iPad截图: 屏幕截图FullPage=new AShot()。拍摄策略(ShootingStrategies.viewportRetina(100,0,0,2))。截图(司机); 但是我想知道如何使用给定的属性来为其他IOS

  • 问题内容: 由于方法很慢,因此我决定使用本机库。我搜索并找到了该论坛,并找到了使用 JNA Library 的特定代码段。这是一个旧版本,所以我重写了代码: __ 还有一个测试代码,以 了解它 比机器人课程 更快的速度 : 结果是 使用JNA库:77 使用机器人课程37 伙计们,请有人解释 为什么 会这样,我该 如何 固定呢? 问题答案: JNA调用花费很多时间,相反,JNI直接使用c ++。