常见问题
我的测试非常慢
当你使用@wdio/ocr-service
时,你并不是为了加速测试而使用它,你使用它是因为你在Web/移动应用中定位元素时遇到困难,想要一种更简单的方法来定位它们。我们都希望知道当你想要得到某些东西时,你会失去其他东西。但是....,有一种方法可以使@wdio/ocr-service
比正常情况下执行得更快。更多相关信息可以在这里找到。
我可以将此服务中的命令与默认的WebdriverIO命令/选择器结合使用吗?
是的,你可以组合这些命令使你的脚本更加强大!建议是尽可能多地使用默认的WebdriverIO命令/选择器,只有在找不到唯一的选择器或者你的选择器变得过于脆弱时才使用此服务。
我的文本没有被找到,这是怎么回事?
首先,了解这个模块中OCR过程的工作原理很重要,所以请阅读这个页面。如果你仍然找不到你的文本,你可以尝试以下几点。
图像区域太大
当模块需要处理屏幕截图的大面积区域时,它可能找不到文本。你可以通过在使用命令时提供一个范围区域(haystack)来指定一个较小的区域。请查看命令哪些命令支持提供范围区域。
文本与背景之间的对比度不正确
这意味着你可能在白色背景上有浅色文本或在深色背景上有深色文本。这可能导致无法找到文本。在下面的例子中,你可以看到文本Why WebdriverIO?
是白色的,并被灰色按钮包围。在这种情况下,将导致找不到Why WebdriverIO?
文本。通过增加特定命令的对比度,它找到了文本并可以点击它,见第二张图片。
await driver.ocrClickOnText({
haystack: { height: 44, width: 1108, x: 129, y: 590 },
text: "WebdriverIO?",
// // 使用默认对比度0.25时,文本无法找到
contrast: 1,
});