Testcafe:对textarea长度的期望

时间:2018-03-27 21:24:56

标签: javascript testcafe

我在maxLength上放了一个textarea,我想声明如果我输入的字符多于maxLength,则额外的字符会被截断。我无法通过简单的方法弄清楚如何在testcafe中做到这一点。这不起作用:

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

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

2 个答案:

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