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

nic*_*kel 9 javascript cypress

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

cy.get(el).should('contain', 'submit').or('contain', 'enviar')
Run Code Online (Sandbox Code Playgroud)

显然不起作用。

  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
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*sen 7

您可以尝试使用正则表达式,请参阅contains#Regular-Expression

看到这个问题正则表达式包含一个或另一个某些格式

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

cy.get(el).contains(/submit|enviar/g)
Run Code Online (Sandbox Code Playgroud)

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

也许用

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