Testcafe技术问询:断言textarea超maxLength时内容被截断
解决Testcafe中断言textarea超过maxLength后截断的问题
我懂你碰到的麻烦了——直接在Selector的value后加.length确实行不通,因为Selector('textarea#announcementText').value返回的是一个Promise对象,不是实际的字符串值,自然没法直接访问length属性。
这里有两种简单有效的方法来实现你的断言:
方法1:先获取值再断言长度
先通过await获取textarea的实际输入值,再对其长度进行断言:
import { Selector, t } from 'testcafe'; // 假设你已经向文本框输入了超过600字符的内容 const announcementTextarea = Selector('textarea#announcementText'); // 获取文本框的实际输入值 const currentValue = await announcementTextarea.value; // 断言内容长度等于maxLength设定值(这里为600) await t.expect(currentValue.length).eql(600);
方法2:用evaluate在客户端计算长度
利用Testcafe的evaluate方法,直接在浏览器端执行代码获取value的长度,省去单独取值的步骤:
import { Selector, t } from 'testcafe'; // 直接在客户端计算并断言文本框内容长度 await t.expect(Selector('textarea#announcementText').evaluate(el => el.value.length)).eql(600);
这两种方法都能准确验证:当输入字符数超过maxLength时,多余字符会被截断,文本框内容长度符合预期。
内容的提问来源于stack exchange,提问作者Daniel Kaplan
相关产品推荐
相关产品推荐

