在TestCafe测试用例中声明的变量能否作为断言的预期值使用?
TestCafe UI元素值存储为断言预期值实现方案
TestCafe的元素属性/内容获取均为异步操作,必须配合await完成取值后才能存入变量作为预期值使用,具体实现步骤如下:
完整实现示例
- 首先导入依赖的Selector模块
import { Selector } from 'testcafe';
- 编写测试用例逻辑
fixture`元素值复用断言示例` .page`你的测试页面地址`; test('存储元素文本作为断言预期值校验', async t => { // 定义目标UI元素的选择器 const targetElement = Selector('#target-display-element'); // 异步获取元素文本值存入变量,必须加await才能拿到实际字符串而非Promise对象 const expectedValue = await targetElement.innerText; // 此处插入你需要执行的其他测试操作,比如跳转、点击、表单提交等 // ... // 读取需要比对的同类文本内容 const actualValue = await Selector('.similar-text-item').nth(2).innerText; // 执行断言校验,匹配完全相等的场景 await t.expect(actualValue).eql(expectedValue); // 若只需匹配包含关系,可改用contains断言 // await t.expect(actualValue).contains(expectedValue); });
补充说明
- 如果仅需要复用元素选择器而非存储元素的实时值,直接将Selector实例赋值给变量即可,不需要加
await,TestCafe的Selector为惰性求值,实际执行操作时才会查询DOM元素 - 除了
innerText外,你也可以根据需求获取元素的其他属性存入变量,比如value(输入框内容)、getAttribute('xxx')(自定义属性值)等,用法和上述示例一致
内容的提问来源于stack exchange,提问作者user16930379
相关产品推荐
相关产品推荐

