Как перейти к определенной версии браузера с помощью 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()
})
})