Ошибка завитка, выданная для http-сообщения в /сеанс

#php #laravel #chromium #headless #laravel-dusk

Вопрос:

Я установил Laravel Dusk для тестирования веб-сайта. Я перепробовал все решения на Stackoverflow по этой проблеме, но ничего не сработало.

Мне нужно запустить браузер без головы, потому что я запускаю тесты на своем сервере Linux.

Текущая версия chromedriver-linux является:

  ./vendor/laravel/dusk/bin/chromedriver-linux --v
ChromeDriver 90.0.4430.24 (4c6d850f087da467d926e8eddb76550aed655991-refs/branch-heads/4430@{#429})
 

Текущая версия Chromium является:

  chromium-browser --version --no-sandbox
Chromium 90.0.4430.93 snap

 

Когда я запускаю Сумерки, я получаю ошибку:

 Operation timed out after 30001 milliseconds with 0 bytes received
Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome","platformName":"linux","goog:chromeOptions":{"args":["--headless","--disable-gpu","--no-sandbox"]}}]},"desiredCapabilities":{"browserName":"chrome","platform":"linux","chromeOptions":{"args":["--headless","--disable-gpu","--no-sandbox"]}}}
 

Есть ли какой-нибудь способ решить эту проблему? Я попытался добавить аргументы "--headless","--disable-gpu","--no-sandbox" , но, к сожалению, это не работает.

Ответ №1:

друг!

Я предполагаю, что вы находитесь на хостинге Windows с Homestead (Windows 10, Homestead 10 и Laravel 8). Если нет, я не уверен, что этот ответ поможет. Но это помогло мне буквально несколько минут назад, так что я чувствую себя обязанным.

  1. Dusk похоже, не нравится Chromium и желает полного хрома. Так что давайте установим его:
 cd ~
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
 

Это позволит загрузить последнюю стабильную версию Google Chrome и установить ее.

  1. Убедитесь, что папка вашего проекта vendor/laravel/dusk/bin/ является исполняемой, как указано в документах. Итак, в корне вашего проекта:
 chmod -R 0755 vendor/laravel/dusk/bin/
 
  1. Убедитесь, что у вас установлен последний драйвер chromium:
 php artisan dusk:chrome-driver --detect
 

3.1. Если вам будет трудно (не удается переименовать, не удается переместить файлы и т. д.)-это, вероятно, потому, что у вас уже запущен драйвер, поэтому выйдите из Homestead и просто

 vagrant reload
 

вернитесь обратно в усадьбу и повторите 3 выше.

  1. Убедитесь, что вы в состоянии завить свой APP_URL . Допустим, это так laravel.app :
 curl http://laravel.app
 

Если нет, проверьте /etc/hosts , вы ожидаете увидеть что — то вроде 127.0.0.1 laravel.app — следуя нашему предположению об URL-адресе. Обычно это устанавливается самой усадьбой, когда вы предоставляете новый сайт.

Вуаля.

 php artisan dusk
 

все прошло успешно.

Это все исправило для меня.

Я потратил непомерное количество времени, которое можно было бы сэкономить с помощью одной строки в документах «Если вы используете Homestead в Windows, обязательно установите Google Chrome«.

Счастливого кодирования!

Комментарии:

1. Спасибо за это. Я упомянул linux в своем посте. В любом случае, я перешел на Symfony Panther, и это работает 🙂