You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress技术问题:如何检查div元素包含两个字符串中的一个?

解决Cypress检查元素文本为指定二选一的问题

你的代码存在两个问题:一是Cypress没有have.any.text这个内置断言,二是参数传递方式不符合语法要求。下面提供两种可行的解决方法:

方法一:使用should回调结合Chai断言

通过回调函数获取元素文本,再用Chai的oneOf断言判断文本是否为指定的两个字符串之一,这种方式灵活性更高,还能处理文本前后空格的干扰:

getText(text1, text2) {
  cy.get('[data-cy="default-login-failed-label"]').should(($el) => {
    const elementText = $el.text().trim();
    expect(elementText).to.be.oneOf([text1, text2]);
  });
}

方法二:使用正则表达式配合contains

如果不需要处理空格,也可以用正则表达式匹配两个字符串中的一个,通过contains断言实现精确匹配:

getText(text1, text2) {
  // ^和$确保完全匹配目标字符串,避免部分匹配的情况
  const matchRegex = new RegExp(`^(${text1}|${text2})$`);
  cy.get('[data-cy="default-login-failed-label"]').contains(matchRegex);
}

注意:如果text1或text2包含正则特殊字符(比如.、*等),需要先对这些字符进行转义,否则正则会匹配出错。

内容的提问来源于stack exchange,提问作者lenkubig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:35:21