我要做的是打印/使用Polyline属性的值。
<Polyline points="x,y x,y x,y x,y">
我尝试使用以下方法获取它们:
这是一个util函数
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}
感谢您的帮助!
答案 0 :(得分:4)
您的<div class="col-xs-4 col-sm-4 col-md-4 select-me show_me del_nxt" style="display: block;">
<select class="prime" name="primary" id="primary" onchange="newsecondary(this)">
<option value="none" id="1200">---Select main---</option>
<optgroup label="dummy1">
<option value="abc-2-1">abc</option>
<option value="xyz-2-1">xyz</option>
</optgroup>
<optgroup label="Dummy2">
<option value="abc1-2-1">abc1</option>
<option value="C1-2-1">C1</option>
<option value="D1-2-1">D1</option>
</optgroup>
</select>
<span class="Error"></span>
</div>
函数返回getPointAttribute
对象,该对象是polylineData
类型(其又基于Promises)的实例。这就是为什么当您登录ClientFunction
时会收到这些消息。您需要做的就是在调用ClientFunction之前使用u.getPointAttribute()
关键字。请参见以下代码:
await
请参阅以下文章,以获取更多信息https://devexpress.github.io/testcafe/documentation/test-api/obtaining-data-from-the-client/
我还要提及的是,您无需在const polylineData = ClientFunction(() => polyline().attributes, {
dependencies: { polyline }
});
await polylineData();
函数中使用async
。
答案 1 :(得分:4)
您应该等待console.log内部的呼叫:
test('', async (t) => {
console.log(await s.polyline.getAttribute('points'));
}
或
test('', async (t) => {
console.log(await s.polyline.getAttribute('points'));
}
答案 2 :(得分:1)
我设法使它与有兴趣的人一起使用实用程序功能。
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 ));
感谢帮助人员!