3

我把 a 放在 amaxLengthtextarea,我想断言,如果我键入的字符多于maxLength,多余的字符将被截断。我无法弄清楚如何在 testcafe 中以简单的方式做到这一点。这不起作用:

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

但是,value没有一个length就可以了。断言 API 中也没有length函数。

4

2 回答 2

4

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}$/);
于 2018-03-28T07:30:25.347 回答
1

我想出了一个看似间接的解决方案。以下是它的工作原理:

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

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

于 2018-03-27T21:26:45.690 回答