我在 textarea
上放了一个 maxLength
,我想断言,如果我输入的字符比 maxLength
多,则额外的字符会被截断。我无法以一种简单的方式在Testcafe中弄清楚如何做到这一点。这无效:
.expect(Selector('textarea#announcementText').value.length)
.eql(600)
但是,value
上没有length
。sustert API中也没有length
函数。
selector((。值字段返回异步属性。您可以获取其值,然后在断言中检查其长度:
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}$/);
我提出了一个似乎间接的解决方案。这是其工作方式:
const getLengthOfAnnouncementText = ClientFunction(() => document.querySelector('textarea#announcementText').value.length);
...
.expect(getLengthOfAnnouncementText())
.eql(600)
这可以按照我想要的方式工作,但是我不喜欢此功能的具体方式。有一个更简单的方法吗?