php - update - vagrant box add laravel/homestead
Error Laravel Dusk: no se pudo conectar con el puerto localhost 9515: se rechazó la conexión (3)
Como dice el título, hice una instalación limpia de Laravel 5.4 y la última versión de Homestead (1.0.1). Sin embargo, cuando ejecuto un caso de prueba de Dusk simple, aparece el siguiente error:
Error al conectarse al puerto localhost 9515: se rechazó la conexión
¿Alguien sabe cómo lidiar con esto? Intenté cambiar el puerto a otra cosa como 8888
sin éxito.
EDITAR: He podido profundizar un poco más y descubrí que el ejecutable chromedriver
no era realmente ejecutable ( chmod
). Ahora que lo he solucionado, recibo este error cuando intento ejecutarlo manualmente.
./chromedriver: error al cargar bibliotecas compartidas: libnss3.so: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio
Con la última versión de laravel / homestead box v.6.0.0 está funcionando fuera de la caja
En Ubuntu Linux 16.04, tengo esto para trabajar:
Instala Chromium y dependencias para pruebas sin cabeza
sudo apt-get -y install chromium-browser xvfb gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable imagemagick x11-apps
Crear un DuskCommand
personalizado
Lo que amplía el original, con este método de 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;
}
Esto iniciará Xvfb para las pruebas sin cabeza antes de ejecutar las pruebas y detener el proceso una vez que se complete la prueba.
Edición: Y asegúrese de que el vendor/laravel/dusk/bin/chromedriver-linux
sea ejecutable.
Parece que su instalación del controlador de Chrome está rota.
Puede intentar instalarlo desde cero
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