Testcafe:对文本区域长度的期望

Testcafe: Expectation on the length of a textarea

我把 maxLength 放在 textarea 上,我想断言如果我键入的字符多于 maxLength,多余的字符将被截断。我不知道如何在 testcafe 中以一种简单的方式做到这一点。这没有用:

.expect(Selector('textarea#announcementText').value.length)
.eql(600)

但是,value 上面没有 length。断言 API 中也没有 length 函数。

我想出了一个看似间接的解决方案。运作方式如下:

const getLengthOfAnnouncementText = ClientFunction(() => document.querySelector('textarea#announcementText').value.length);
...
.expect(getLengthOfAnnouncementText())
.eql(600)

这按我想要的方式工作,但我不喜欢这个功能的具体性。有没有更简单的方法来做到这一点?

Selector().value 字段 returns 异步 属性。你可以得到它的值,然后在断言中检查它的长度:

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}$/);