Cypress ожидается, что элемент содержит одну строку или другую строку - PullRequest
2 голосов
/ 01 октября 2019

Я пытаюсь сделать некоторые утверждения 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

не проходит тест, все еще проверяя обе строки.

Ответы [ 2 ]

2 голосов
/ 02 октября 2019

Вы можете попробовать регулярное выражение, см. содержит # Регулярное выражение .

См. Этот вопрос Регулярное выражение, содержащее одно или другое слово для некоторых форматов

Я думаю, что что-то такое простое, как это,

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

Сначала поэкспериментируйте с Regex101 или аналогичным онлайн-тестером.

Возможно, создайте его с помощью

const runout = ['submit', 'enviar']
const regex = new RegExp(`${runout.join('|')}`, 'g')
cy.get(el).contains(regex)
0 голосов
/ 02 октября 2019

Может быть, таким способом можно проверить условие «Или». Я использовал домашнюю страницу Google для тестирования и попытался найти в своем тесте либо «Поиск Google», либо «Не поиск Google». Если не можете найти оба, выдаст ошибку.

describe('check if contains one of the text', function() 
{
it('Test google search button on google homepage',()=> {
    let url = 'https://www.google.com/';
    let word1 = 'Not Google Search';
    let word2 = 'Google Search';
    cy.visit(url);
    cy.get('input[value="Google Search"]').invoke('attr','value').then((text)=>{

        if (text=== word1) {
            console.log('found google not search');
        }
        else if (text === word2) {
            console.log('found google search');
        }
        else {
            console.log(text);
            throw ("cannot find any of them");
        }

    })
})
})

В приведенном выше контрольном примере слово word2 найдено, поэтому в консоли появилось сообщение «Найдено в поиске Google».

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...