Как перейти к определенной версии браузера с помощью Playwright?

Мне нужно запустить несколько тестов с помощью Playwright среди разных версий Chromium. У меня есть разные папки Chromium с разными версиями, но я не знаю, как переключаться с одной версии на другую с помощью интерфейса командной строки для запуска моих тестов. Некоторая помощь? Спасибо :)

2 ответа

Вы можете использовать executablePathаргумент при запуске браузера для использования настраиваемого исполняемого файла. Смотрите здесь . Обратите внимание, что это работает только с браузерами на основе Chromium, см. Здесь .

      const playwright = require('playwright');

(async () => {
  const browser = await playwright.chromium.launch({
    executablePath: '/your/custom/chromium'
  });
  const page = await browser.newPage();
  await page.goto('http://whatsmyuseragent.org/');
  await page.screenshot({ path: `example.png` });
  await browser.close();
})();

Также Playwright тестирует только последнюю стабильную версию, поэтому другие версии Chromium могут работать некорректно. Смотрите здесь под релизами.

Макс Шмитт прав: не гарантируется, что библиотека будет работать с несвязанными Chromium. В любом случае, вы можете попробовать несколько браузеров на основе Chromium в executablePath. Поскольку он не встроен в тест Playwright Test, вам придется реализовать его самостоятельно.

Примечание: таким образом вы теряете часть простоты теста драматурга.

В моем примере я использовал как средство Jestзапуска тестов, поэтому yarn add --dev jestтребуется для. Последний аргумент CLI, зарезервированный для версии браузера, можно получить с помощью process.argv.slice(-1)[0]внутри Node вы можете указать своим тестам, какую версию браузера вы хотите использовать. Вот они будут edge, chrome и по умолчанию это объединенный chromium.

MS Edge (хром)

      yarn test chrome.test.js edge

Хром

      yarn test chrome.test.js chrome

Chromium (по умолчанию - в комплекте с Playwright) (но любая строка или отсутствие этого аргумента также запустит это по умолчанию)

      yarn test chrome.test.js chromium_default

chrome.test.js
(со специфичными для Windows путями к исполняемым файлам)

      const playwright = require('playwright')

let browser
let page

beforeAll(async function () {
  let chromeExecutablePath
  switch (process.argv.slice(-1)[0]) {
    case 'chrome':
      chromeExecutablePath = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'
      break
    case 'edge':
      chromeExecutablePath = 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe'
      break
    default:
      chromeExecutablePath = ''
  }
  browser = await playwright.chromium.launch({ 
    headless: false, 
    executablePath: chromeExecutablePath 
  })
  page = await browser.newPage()
})

describe('Google Search', function () {
  test('should respond with HTTP 200 - OK', async function () {
    const response = await page.goto('https://google.com')
    const responseCode = response.status()
    expect(responseCode).toBe(200)
  })
  afterAll(async function () {
    await browser.close()
  })
})
Другие вопросы по тегам