Вопрос или проблема
Я пытаюсь настроить сервер nodejs+selenium на ec2.
Я установил и настроил node, и попытался установить Firefox, воспользовавшись учебником здесь:
https://lambda-linux.io/blog/2015/01/28/announcing-firefox-browser-support-for-amazon-linux/
Я всё установил, но когда я запускаю Firefox, получаю эту ошибку.
GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0′ failed
Кто-нибудь знает, как я могу это исправить?
Спасибо!
Как обсуждалось на почтовом списке, мы обновили инструкции для загрузки последней версии Firefox. Если это всё ещё не работает с последней версией Amazon Linux AMI и Firefox, пожалуйста, дайте нам знать.
Спасибо, что используете пакеты Lambda Linux Project.
Ответ или решение
Установка Firefox на EC2 с использованием Lambda Linux Project
Установка Firefox на сервере Amazon EC2 может показаться сложной задачей, особенно когда вы сталкиваетесь с ошибками, такими как GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
. В этом руководстве я подробно опишу процесс установки Firefox для работы с Node.js и Selenium на EC2 с использованием Amazon Linux, а также предложу решения для устранения ошибок.
Шаг 1: Подготовка окружения
Перед началом установки убедитесь, что на вашем экземпляре EC2 уже установлен Node.js. Для этого выполните следующие команды:
# Установите Node.js
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs
Шаг 2: Установка зависимостей
Для работы Firefox нам понадобятся некоторые зависимости, включая Xvfb (виртуальный фреймбуфер) для запуска браузера в безголовом режиме:
# Установите необходимые пакеты
sudo yum install -y xorg-x11-server-Xorg xorg-x11-server-Xvfb xorg-x11-xauth xorg-x11-utils
Шаг 3: Установка Firefox
Теперь давайте загрузим и установим последнюю версию Firefox, как указано в вашем источнике:
# Загрузка и установка последней версии Firefox
sudo yum install -y firefox
Убедитесь, что эта команда завершилась без ошибок. Если вы видите предупреждения или ошибки, попробуйте обновить систему:
sudo yum update -y
Шаг 4: Настройка Selenium
После успешной установки Firefox, необходимо настроить Selenium для использования браузера. Убедитесь, что у вас установлен пакет selenium-webdriver
:
npm install selenium-webdriver
После этого добавьте следующий код в свой Node.js проект для запуска Firefox:
const { Builder } = require('selenium-webdriver');
(async function example() {
let driver = await new Builder().forBrowser('firefox').build();
try {
await driver.get('http://www.example.com');
} finally {
await driver.quit();
}
})();
Шаг 5: Устранение ошибок
Если вы столкнулись с ошибкой GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
, это может быть связано с тем, что Firefox пытается получить доступ к графическим библиотекам без соответствующей конфигурации. Чтобы устранить эту ошибку, выполните следующее:
-
Убедитесь, что у вас установлены все необходимые графические библиотеки, выполняя команды:
sudo yum groupinstall -y "X Window System" sudo yum install -y libXtst libXrender
-
Используйте Xvfb для запуска Firefox в безголовом режиме:
Xvfb :99 -ac & export DISPLAY=:99
К этому моменту Firefox должен работать без ошибок.
Заключение
Теперь вы успешно установили Firefox на Amazon EC2 и настроили его для работы с Node.js и Selenium. Если после всех вышеперечисленных шагов возникают проблемы, советую проверить сообщества, такие как Lambda Linux Project Packages, где можно получить поддержку и обновления.
Следуя этим шагам, вы сможете запустить тесты и рабочие процессы веб-автоматизации на своем сервере. Если у вас есть дополнительные вопросы или возникают другие проблемы, не стесняйтесь обращаться за помощью.