我在maxLength
上放了一个textarea
,我想声明如果我输入的字符多于maxLength
,则额外的字符会被截断。我无法通过简单的方法弄清楚如何在testcafe中做到这一点。这不起作用:
.expect(Selector('textarea#announcementText').value.length)
.eql(600)
但是,value
上没有length
。断言API中也没有length
函数。
答案 0 :(得分:1)
我想出了一个似乎是间接的解决方案。以下是它的工作原理:
const getLengthOfAnnouncementText = ClientFunction(() => document.querySelector('textarea#announcementText').value.length);
...
.expect(getLengthOfAnnouncementText())
.eql(600)
这可以按我想要的方式工作,但我不喜欢这个功能的具体程度。有更简单的方法吗?
答案 1 :(得分:1)
Selector().value
字段返回异步属性。您可以获取其值,然后在断言中检查其长度:
const textAreaValue = await Selector('textarea#announcementText').value;
await t
.expect(textAreaValue.length)
.eql(600);
您也可以使用match
断言:
await t
.expect(Selector('textarea#announcementText').value)
.match(/^.{0,600}$/);