Ошибка Laravel Dusk: не удалось подключиться к порту localhost 9515: соединение отклонено
Как говорится в названии, я проделал чистую установку Laravel 5.4 и последней версии Homestead (1.0.1). Однако, когда я запускаю простой сценарий Dusk, я получаю следующую ошибку:
Не удалось подключиться к локальному порту 9515: отказ в подключении
Кто-нибудь знает, как с этим бороться? Я попытался изменить порт на что-то еще, например 8888
безрезультатно.
EDIT:
Я был в состоянии копать немного глубже и узнал, что исполняемый файл chromedriver
не был фактически исполняемым (chmod
). Теперь, когда я исправил, что получаю эту ошибку, когда я вручную пытаюсь ее запустить.
./chromedriver: ошибка при загрузке разделяемых библиотек: libnss3.so: невозможно открыть файл общих объектов: нет такого файла или каталога
Ответы
Ответ 1
Похоже, ваша установка chrome-драйвера не работает.
Вы можете попробовать установить его с нуля
CHROME_DRIVER_VERSION='curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE'
wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/
unzip ~/chromedriver_linux64.zip -d ~/
rm ~/chromedriver_linux64.zip
sudo mv -f ~/chromedriver /usr/local/bin/chromedriver
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod 0755 /usr/local/bin/chromedriver
Ответ 2
На Ubuntu Linux 16.04 я получил это для работы:
Установите Chromium и зависимости для тестирования без головок
sudo apt-get -y install chromium-browser xvfb gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable imagemagick x11-apps
Создать пользовательский DuskCommand
Что расширяет оригинал с помощью этого метода handle
:
public function handle()
{
$xvfb = (new ProcessBuilder())
->setTimeout(null)
->setPrefix('/usr/bin/Xvfb')
->setArguments(['-ac', ':0', '-screen', '0', '1280x1024x16'])
->getProcess();
$xvfb->start();
try {
parent::handle();
} finally {
$xvfb->stop();
}
return;
}
Это запустит Xvfb для тестирования без головок перед выполнением тестов и прекратит процесс после завершения тестирования.
Изменить: и убедитесь, что vendor/laravel/dusk/bin/chromedriver-linux
выполним.
Ответ 3
С последней версией laravel/hometead box v.6.0.0 она работает из коробки
https://app.vagrantup.com/laravel/boxes/homestead
Ответ 4
Это должно помочь вам загрузить последнюю версию драйвера Chrome и распаковать его правильно.
LATEST_VERSION=$(curl -s https://chromedriver.storage.googleapis.com/LATEST_RELEASE) && wget -O /tmp/chromedriver.zip https://chromedriver.storage.googleapis.co /$LATEST_VERSION/chromedriver_linux64.zip && sudo unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/;
Ответ 5
У меня была эта проблема сегодня, и решение находится на Laracasts.
Здесь копия.
# makes sure all your repos are up to date
sudo apt-get update
# chrome dependencies I think
sudo apt-get -y install libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4
# chromium is what I had success with on Codeship, so seemed a good option
sudo apt-get install chromium-browser
# XVFB for headless applications
sudo apt-get -y install xvfb gtk2-engines-pixbuf
# fonts for the browser
sudo apt-get -y install xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable
# support for screenshot capturing
sudo apt-get -y install imagemagick x11-apps
# Once all this has run through, you need to fire up xvfb on your homestead box. If youre planning to # do this on a regular basis, youll want to get this setup on boot, but for the sake of testing things out:
Xvfb -ac :0 -screen 0 1280x1024x16 &