TestCafe截图:适用于Android的浏览器提供程序。 crop.js“无法在浏览器窗口中找到页面区域截图”

问题描述 投票:2回答:2

我致力于扩展testcafe-provider-android。我希望它支持Firefox和截图。

屏幕截图是使用Android调试工具进行的。它适用于Chrome,但不适用于Firefox。

crop.js#calculateMarkPosition()找不到标记。

我想我理解标记是如何工作的。

utils.js#generateScreenshotMark()中生成一串32个0或1的字符串,这就是“id”。 “1”变为白点,“0”变为黑点。 “markSeed”是转换为字节数组的id。 “markData”是base64编码的图像,可以在URL中使用。

在客户端,screenshot-mark.js将此图像放在页面的右下角。

crop.js#calculateMarkPosition()逐行扫描屏幕截图,以便找到标记并正确裁剪图像。

以下是Chrome和Firefox的ID和屏幕截图:

注意:我操纵代码以始终生成相同的ID。屏幕截图被裁剪并放大。

ID:

00101111000011000011000011110100

铬:

Screenshot from Chrome

火狐:

Screenshot from Firefox

在我眼里,它们看起来一样。那为什么这不起作用?

automated-tests e2e-testing web-testing testcafe
2个回答
3
投票

如果您可以使用第三方工具裁剪屏幕截图,则需要通过将built-in screenshot mark generation属性设置为false来禁用hasChromelessScreenshots

我建议你打开a new issue on the TestCafe repository并提供所有屏幕截图源码。


3
投票

我找到了这种行为的原因。

在Chrome中,黑点的rgba值为rgba(0,0,0,1),而在Firefox中则为rgba(1,1,1,1);

这就是无法找到索引的原因 - 值不符合预期。

现在我需要找出,如果这是Firefox中的一个错误。

更新:

这是因为Firefox进行了颜色调整。问题在TestCafe Bug #2918中描述,并用TestCafe Pull Request #3732解决

我们现在只需要等待下一个版本。

© www.soinside.com 2019 - 2024. All rights reserved.