代码之家  ›  专栏  ›  技术社区  ›  Daniel Kaplan

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

  •  3
  • Daniel Kaplan  · 技术社区  · 7 年前

    我放了一个 maxLength textarea ,我想断言,如果键入的字符数超过 最大长度 ,多余的字符将被截断。我想不出如何在testcafe中以一种简单的方式做到这一点。这不起作用:

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

    但是 value 没有 length 在上面。没有 函数。

    2 回复  |  直到 5 年前
        1
  •  4
  •   Alex Skorkin Alex Kamaev    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}$/);
    
        2
  •  1
  •   Daniel Kaplan    7 年前

    我想出了一个似乎间接的解决办法。其工作原理如下:

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

    这是我想要的方式,但我不喜欢这个函数有多具体。有没有更简单的方法?