如何断言该图像包含 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();
}
})();
重复使用此代码段时,很可能需要创建一个新的针图像,因为我从您提供的屏幕截图中获取了它。
我想监控一个仪表板,示例如下: 我想断言它包含以下指定的文本,是否会截取一些小屏幕截图然后断言图像具有以下文本?或者有更好的方法吗?
答案取决于仪表板的实施。知道应该断言哪个文本会很有帮助。
如果是网页应用
我建议使用 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();
}
})();
重复使用此代码段时,很可能需要创建一个新的针图像,因为我从您提供的屏幕截图中获取了它。