🧱 1. Установка Node.js (Debian 11)
✅ Рекомендуемый способ (NodeSource LTS)
sudo apt update
sudo apt install -y curl ca-certificates gnupg
sudo apt install -y curl ca-certificates gnupg
Добавляем репозиторий Node.js (LTS)
👉 лучше брать 20.x (актуально сейчас)
Установка Node.js
sudo apt install -y nodejs
Проверка
node -v
npm -v
npm -v
🧱 2. Установка Yarn (если нужно)
npm install -g yarn
🧱 3. (Опционально) NVM — если хочешь переключать версии
Активировать:
source ~/.bashrc
📦 4. Переход в твой проект
cd /opt/integrations/app/src/providers/novofon
🧾 5. Инициализация проекта
npm init -y
🎭 6. Установка Playwright
npm install playwright
🌐 7. Установка браузеров
npx playwright install chromium
👉 (можно также: firefox, webkit)
🚀 8. Запуск твоего теста
node test_novofon.js
⚠️ ВАЖНО (частая ошибка на серверах)
Если получишь ошибки типа:
Error: failed to launch browser
👉 нужно поставить зависимости:
sudo npx playwright install-deps
или вручную:
sudo apt install -y \
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libgtk-3-0
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libgtk-3-0
📁 9. Как правильно запускать твой файл
Ты сказал:
/opt/integrations/app/src/providers/novofon/test_novofon.js
👉 тогда:
node /opt/integrations/app/src/providers/novofon/test_novofon.js
🧪 10. Рекомендуемая структура теста (чтобы не ломалось)
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({
headless: true
});
const context = await browser.newContext({
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
extraHTTPHeaders: {
referer: 'https://yandex.ru/search/'
}
});
const page = await context.newPage();
await page.goto('https://savastroy.ru', {
waitUntil: 'networkidle'
});
await page.waitForTimeout(4000);
const phone = await page.$eval('#dct-phone', el => el.outerHTML);
console.log('RESULT:', phone);
await browser.close();
})();
(async () => {
const browser = await chromium.launch({
headless: true
});
const context = await browser.newContext({
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
extraHTTPHeaders: {
referer: 'https://yandex.ru/search/'
}
});
const page = await context.newPage();
await page.goto('https://savastroy.ru', {
waitUntil: 'networkidle'
});
await page.waitForTimeout(4000);
const phone = await page.$eval('#dct-phone', el => el.outerHTML);
console.log('RESULT:', phone);
await browser.close();
})();