javascript - Cypress 期望元素包含一个字符串或另一个字符串

标签 javascript cypress

我正在尝试做一些 Cypress 断言,看看它是否包含一个或另一个字符串。它可以是英语或西类牙语,因此任何一个都应该通过测试。

cy.get(el).should('contain', 'submit').or('contain', 'enviar')

显然行不通。

  const runout = ['submit', 'enviar']
  const el = '[data-test=btn-submit]'
  function checkArray(arr, el) {
    for(let i = 0; i < arr.length; i++) {
      if(cy.get(el).contains(arr[i])) {
        return true
      } else {
        if (i === arr.length) {
          return false
        }
      }
    }
  }
  cy.expect(checkArray(runout,el)).to.be.true

测试失败,仍然检查两个字符串。

最佳答案

你可以试试正则表达式,见contains#Regular-Expression .

看这个问题Regular expression containing one word or another对于某些格式

我认为像这样简单的事情就可以做到,

cy.get(el).contains(/submit|enviar/g)

首先在 Regex101 上进行实验或类似的在线测试器。

也许可以用

const runout = ['submit', 'enviar']
const regex = new RegExp(`${runout.join('|')}`, 'g')
cy.get(el).contains(regex)

关于javascript - Cypress 期望元素包含一个字符串或另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58176344/

相关文章:

javascript - 一个简单的 Nodejs MySQL 查询

gitlab - Cypress/GitLab CI/CD 集成 - Cypress 不会以 headless 模式启动

routes - Cypress URL 匹配查询

cypress - 运行不同组 Cypress 测试的简单方法

javascript - 将变量的值从测试传递到 Cypress 中的下一个

javascript - 将元素从一个数组移动到另一个数组

javascript - Jquery ajax 响应似乎忽略类

javascript - 如何在nodejs中正确使用域

Javascript Sinus 不正确

javascript - 如何根据数据属性检查cypress中元素的顺序