首页 > 解决方案 > 如何在 TestCafe 的通用属性中使用/打印值

问题描述

我想要做的是打印/使用折线属性的值。

<Polyline points="x,y x,y x,y x,y">

我试图用这些方法得到它们:

这是一个实用功能

export const getPointAttribute = async () => {
  const polyline = s.polyline;
  const polylineData = ClientFunction(() => polyline().attributes, {
    dependencies: { polyline }
  });
  return polylineData 
}

这是在测试脚本里面

test('', async (t) => {
   console.log(u.getPointAttribute())
}

或者

test('', async (t) => {
   console.log(s.polyline.getAttribute('points'));
}

我将我的选择器包括在外部

import * as s from '../utilities/selectors';

但我得到的只是控制台日志中的输出

承诺 { }

或者

ReExecutablePromise { _then: [], _fn: [Function], _taskPromise: null }

任何帮助表示赞赏!

标签: javascriptreactjstestinge2e-testingtestcafe

解决方案


如果是ClientFunction 类型(反过来,基于 Promises),您的getPointAttribute函数将返回作为实例的对象。这就是为什么当您登录时,您会收到这些消息。您需要做的就是在调用 ClientFunction 之前使用关键字。请看以下代码:    polylineDatau.getPointAttribute()await

const polylineData = ClientFunction(() => polyline().attributes, {
    dependencies: { polyline }
});
await polylineData();

参考以下文章获取更多信息https://devexpress.github.io/testcafe/documentation/test-api/obtaining-data-from-the-client/

我还想提一下,你不需要async在你的getPointAttribute函数中使用。


推荐阅读