如何断言元素包含非空文本?Playwright测试疑问
断言元素文本非空的实现方案
针对你需要检查元素包含非空文本的需求,有几种可行的实现方式:
使用正则表达式匹配非空/非纯空白文本
利用toHaveText支持正则的特性,直接匹配至少一个非空白字符,确保文本不是空或纯空格:await expect(myLocator).toHaveText(/\S+/);如果允许文本包含空格但不能全空,也可以用适配多行文本的正则:
await expect(myLocator).toHaveText(/.+/s); // 加上`s`修饰符让`.`匹配换行符,兼容多行文本场景断言文本不等于空字符串
直接用not修饰符,断言元素文本不是空字符串:await expect(myLocator).not.toHaveText('');若要排除纯空格的情况,改用匹配全空白的正则并取反:
await expect(myLocator).not.toHaveText(/^\s*$/);手动获取文本后断言
先获取元素的文本内容,再直接断言其非空(或trim后非空):const elementText = await myLocator.textContent(); // 检查文本不是空字符串 expect(elementText).not.toBe(''); // 检查文本去除首尾空格后不是空(排除纯空格场景) expect(elementText.trim()).not.toBe('');
内容的提问来源于stack exchange,提问作者I.sh.
相关产品推荐
相关产品推荐

