[英]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.