Playwright 1.45 — что нового

Clock

Новый API Clock дает возможность управлять временем в тестах, для проверки поведения, связанного с временем. Этот API охватывает множество распространенных сценариев, включая: 

  • тестирование с предопределенным временем; 
  • поддержание последовательного времени и таймеров; 
  • мониторинг бездействия; 
  • отсчет времени вручную.
// Initialize clock and let the page load naturally.
await page.clock.install({ time: new Date('2024-02-02T08:00:00') });
await page.goto('http://localhost:3333');

// Pretend that the user closed the laptop lid and opened it again at 10am,
// Pause the time once reached that point.
await page.clock.pauseAt(new Date('2024-02-02T10:00:00'));

// Assert the page state.
await expect(page.getByTestId('current-time')).toHaveText('2/2/2024, 10:00:00 AM');

// Close the laptop lid again and open it at 10:30am.
await page.clock.fastForward('30:00');
await expect(page.getByTestId('current-time')).toHaveText('2/2/2024, 10:30:00 AM');

Подробно.

Test runner

  • Новая опция CLI --fail-on-flaky-tests, которая устанавливает код выхода равным 1 при любых flaky-тестах. Обратите внимание, что по умолчанию тестовый прогон завершается с кодом 0, если все неудачные тесты восстановились при повторной попытке. С этой опцией прогон тестов в таком случае завершится неудачей. 
  • Новая переменная среды PLAYWRIGHT_FORCE_TTY управляет тем, предполагают ли встроенные репортеры list, line и dot работу с терминалом. Например, это может быть полезно для отключения поведения tty, если ваша среда CI не очень хорошо обрабатывает управляющие последовательности ANSI. Или же, вы можете включить поведение tty даже при наличии live-терминала, если планируете постобработку вывода и обработку управляющих последовательностей.
# Avoid TTY features that output ANSI control sequences
PLAYWRIGHT_FORCE_TTY=0 npx playwright test

# Enable TTY features, assuming a terminal width 80
PLAYWRIGHT_FORCE_TTY=80 npx playwright test
  • Новые опции testConfig.respectGitIgnore и testProject.respectGitIgnore управляют тем, исключать ли файлы, соответствующие шаблонам .gitignore, при поиске тестов.
  • Новое свойство timeout теперь доступно для пользовательских матчеров expect. Это свойство учитывает playwright.config.ts и expect.configure().
import { expect as baseExpect } from '@playwright/test';

export const expect = baseExpect.extend({
  async toHaveAmount(locator: Locator, expected: number, options?: { timeout?: number }) {
    // When no timeout option is specified, use the config timeout.
    const timeout = options?.timeout ?? this.timeout;
    // ... implement the assertion ...
  },
});

Прочее

Метод locator.setInputFiles() теперь поддерживает загрузку директории для элементов <input type=file webkitdirectory>.

await page.getByLabel('Upload directory').setInputFiles(path.join(__dirname, 'mydir'));

Многие методы, такие как locator.click() или locator.press(), теперь поддерживают клавишу-модификатор ControlOrMeta. Эта клавиша обозначает Meta в macOS и Control в Windows и Linux.

// Press the common keyboard shortcut Control+S or Meta+S to trigger a "Save" operation.
await page.keyboard.press('ControlOrMeta+S');
  • Новое свойство httpCredentials.send в apiRequest.newContext(), позволяющее либо всегда отправлять заголовок Authorization, либо только в ответ на 401 Unauthorized
  • Новая опция reason в apiRequestContext.dispose(), которая будет включена в сообщение об ошибке текущих операций, прерванных в результате удаления контекста.
  • Новая опция host в browserType.launchServer() позволяет принимать websocket-соединения по конкретному адресу вместо неопределенного 0.0.0.0.
  • Playwright теперь поддерживает Chromium, Firefox и WebKit на Ubuntu 24.04. 
  • v1.45 — последний выпуск, получивший обновление WebKit для macOS 12 Monterey. Пожалуйста, обновите macOS, чтобы продолжать использовать последнюю версию WebKit.

Версии браузеров

  • Chromium 127.0.6533.5
  • Mozilla Firefox 127.0
  • WebKit 17.4

1.45 протестирована на следующих stable-каналах:

  • Google Chrome 126
  • Microsoft Edge 126

Комментарии к релизу


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас