Comme le titre l'indique, j'ai effectué une nouvelle installation de Laravel 5.4 et de la dernière version de Homestead (1.0.1). Cependant, lorsque j'exécute un scénario de test Dusk simple, l'erreur suivante apparaît:
Échec de la connexion au port localhost 9515: connexion refusée
Quelqu'un sait comment faire face à cela? J'ai essayé de changer le port pour quelque chose d'autre, tel que 8888
, en vain.
EDIT: J'ai pu creuser un peu plus profondément et découvert que l'exécutable chromedriver
n'était pas réellement exécutable (chmod
). Maintenant que j'ai résolu le problème, j'obtiens cette erreur lorsque j'essaie de l'exécuter manuellement.
./chromedriver: erreur lors du chargement des bibliothèques partagées: libnss3.so: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type
Il semble que votre installation de chrome-driver est cassée.
Vous pouvez essayer de l'installer à partir de zéro
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
Sur Ubuntu Linux 16.04, cela a fonctionné:
Installation de Chrome et de dépendances pour des tests sans tête
Sudo apt-get -y install chromium-browser xvfb gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable imagemagick x11-apps
Créer une personnalisationDuskCommand
Ce qui étend l'original, avec cette méthode 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;
}
Cela démarrera Xvfb pour les tests sans tête avant d'exécuter les tests et arrêtera le processus une fois le test terminé.
Edit: Et assurez-vous que vendor/laravel/dusk/bin/chromedriver-linux
est exécutable.
Cela devrait vous aider à télécharger la dernière version du pilote chrome et à la décompresser correctement.
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/;
Avec la dernière version laravel/Homestead Box v.6.0.0, tout fonctionne à la perfection
J'ai eu ce problème aujourd'hui et la solution est sur Laracasts.
Voici une copie.
# 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 you’re planning to # do this on a regular basis, you’ll want to get this setup on boot, but for the sake of testing things out:
Xvfb -ac :0 -screen 0 1280x1024x16 &