繁体   English   中英

我如何在 TestCafe 中使用/打印通用属性中的值

[英]How do i use/print the value inside a generic attribute in TestCafe

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

<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 }

任何帮助表示赞赏!

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

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

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

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

您应该在 console.log 中等待调用:

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

或者

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

我已经设法让它与感兴趣的人一起使用实用程序功能。

export function getPoints(object: Selector) : Promise<string> {
  return object.getAttribute('points');
}

这使得处理数据更容易、更清晰。

import * as u from '../utilities/functions';
import * as s from '../utilities/selectors';
console.log(await u.getPoints( s.polyline ));

谢谢你们的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM