Spec-Zone.ru › Cypress

Cypress.isBrowser

Cypress.isBrowser проверяет, соответствует ли текущий браузер заданному имени или фильтру.

Синтаксис

Cypress.isBrowser(matcher)
Cypress.isBrowser(matchers)
Cypress.isBrowser(filter)

Аргументы

matcher (Строка)

Имя браузера (регистронезависимое), с которым нужно сравнить. Имя можно префикснуть символом ! для инверсии проверки.

matchers (Массив)

Массив имён браузеров (регистронезависимые), с которыми нужно сравнить. Имя можно префикснуть символом ! для инверсии проверки.

filter (Объект или Массив)

Фильтрация одного или нескольких браузеров по свойствам браузера. Вы можете проверить свойства текущего браузера, используя Cypress.browser. Поддерживаемые свойства:

Свойство Тип Описание
name string Имя, понятное для машины, например, chrome, electron, или firefox.
family string Используемый движок рендеринга. chromium или firefox.
channel string Канал выпуска браузера, например, stable, dev, или canary.
displayName string Понятное для человека имя браузера.
version string Полная версия.
path string Путь к браузеру на диске. Пустая строка для Electron.
majorVersion number Основной номер версии браузера.
isHeadless boolean Запущен ли браузер в бессерверном режиме.
isHeaded boolean Отображается ли браузер в режиме с интерфейсом.

Примеры

Matcher

Выполнять команду только в Chrome

it('download extension link', () => {
  // true when running in Firefox
  if (Cypress.isBrowser('firefox')) {
    cy.get('#dl-extension').should('contain', 'Download Firefox Extension')
  }

  // true when running in Chrome
  if (Cypress.isBrowser('chrome')) {
    cy.get('#dl-extension').should('contain', 'Download Chrome Extension')
  }
})

Выполнять команду во всех браузерах, кроме Chrome

it('warns to view page in Chrome browser', () => {
  // true when running in Firefox, etc...
  if (Cypress.isBrowser('!chrome')) {
    cy.get('.browser-warning').should(
      'contain',
      'For optimal viewing, use Chrome browser'
    )
  }
})

Matchers

Выполнять команды во всех указанных браузерах

it('colors rainbow', () => {
  // true when running in Electron or Chrome
  if (Cypress.isBrowser(['electron', 'chrome'])) {
    cy.get('.rainbox').should(
      'have.css',
      'conic-gradient(red, orange, yellow, green, blue)'
    )
  }
})

Выполнять команды во всех браузерах, кроме указанных

// true when running in browser other than chrome and electron
it('does not run in Firefox and Chrome', () => {
  if (Cypress.isBrowser(['!electron', '!chrome'])) {
    cy.get('#h4').should('have.css', 'font-size-adjust', '0.5')
  }
})

Фильтр

Выполнять команды только в браузерах на основе Chromium

it('has CSS reflections', () => {
  // if in Chromium-based browser (Chrome, Electron, etc...)
  // check css property was properly applied
  if (Cypress.isBrowser({ family: 'chromium' })) {
    cy.get('.header').should('have.css', '-webkit-box-reflect', 'left')
  }
})

Выполнять только на стабильной версии в браузерах на основе Chromium

it('test', () => {
  // true when in any stable release of a Chromium-based browser
  if (Cypress.isBrowser({ family: 'chromium', channel: 'stable' })) {
    // test some (hypothetical) scenario in chrome stable
  }
})

Выполнять только на определённых каналах выпуска браузеров

it('test', () => {
  // true when running in Chrome Canary
  // and dev releases of Firefox browser
  if (
    Cypress.isBrowser([
      { family: 'chromium', channel: 'canary' },
      { family: 'firefox', channel: 'dev' },
    ])
  ) {
    // test some (hypothetical) scenario
  }
})

Примечания

Конфигурация теста: browser

Если нужно нацелить тест или набор тестов на выполнение или исключение при запуске в определённом браузере, рекомендуется передать browser в настройках конфигурации теста. Опция browser принимает те же аргументы, что и Cypress.isBrowser().

it('Download extension in Firefox', { browser: 'firefox' }, () => {
  cy.get('#dl-extension').should('contain', 'Download Firefox Extension')
})
it('Show warning outside Chrome', { browser: '!chrome' }, () => {
  cy.get('.browser-warning').should(
    'contain',
    'For optimal viewing, use Chrome browser'
  )
})

История

Версия Изменения
4.8.0 Расширены аргументы matcher и matchers для улучшения фильтрации браузеров.
4.0.0 Добавлена команда isBrowser .

См. также

  • API запуска браузера
  • Кросс-браузерное тестирование
  • Cypress.browser
  • Запуск браузеров
  • Настройка Теста

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/cypress-api/isbrowser

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API