如何断言该图像包含 Sakuli 中所需的文本?

How to assert that image contains required text in Sakuli?

我想监控一个仪表板,示例如下: 我想断言它包含以下指定的文本,是否会截取一些小屏幕截图然后断言图像具有以下文本?或者有更好的方法吗?

答案取决于仪表板的实施。知道应该断言哪个文本会很有帮助。

如果是网页应用
我建议使用 assertion API 中的 _assertContainsText

Sakuli V2 样本:

(async () => {
  const testCase = new TestCase();
  try {
    await _navigateTo("https://whosebug.com");
    const contentHeading = await _fetch(_heading1(0, _in(_div("content"))))
    await _highlight(contentHeading)
    await _assertContainsText("We <3 people who code", contentHeading)
  } catch (e) {
    await testCase.handleException(e);
  } finally {
    await testCase.saveResult();
  }
})();

如果是原生UI应用程序
Sakuli 2 目前无法在屏幕上查找文本。它已计划但尚未完成。确实可以断言屏幕上的部分存在。

给定下图为needle.png

(async () => {
  const testCase = new TestCase();
  const url = "https://your-dashboard.com";
  const screen = new Region();
  const env = new Environment();
  try {
    await _navigateTo(url);
    await env.setSimilarity(0.95);
    await screen
      .exists("needle.png", 1)
      .highlight(1);
  } catch (e) {
    await testCase.handleException(e);
  } finally {
    await testCase.saveResult();
  }
})();

重复使用此代码段时,很可能需要创建一个新的针图像,因为我从您提供的屏幕截图中获取了它。