Я пытаюсь начать работу с Laravel Dusk, однако не могу заставить его работать правильно. На основе обратной связи от того, когда я запускаю его в консоли и некоторые поиски Google а также тот факт, что я испытывал те же проблемы с аналогичным пакетом до того, как Dusk был выпущен, я предполагаю, что проблема заключается в том, чтобы быть за прокси на моем рабочем месте. Я, конечно, могу ошибаться из-за прокси, но это единственное, что я должен сделать сейчас. Если честно, я даже не понимаю, зачем ему знать настройки моего прокси для локального запуска локальных тестов?
Я сделал следующее, чтобы установить сумерки:
composer require laravel/dusk
APP_URL=http://ticket.dev
AppServiceProvider
register()
метод:приложение / Провайдеры / AppServiceProviders.php
use Laravel\Dusk\DuskServiceProvider;
//...
public function register()
{
if ($this->app->environment('local', 'testing')) {
$this->app->register(DuskServiceProvider::class);
}
}
Когда я бегу php artisan dusk
Я получаю следующее в моей консоли:
1) Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\WebDriverException: JSON decoding of remote response failed.
Error code: 4
The response: '<!DOCTYPE html>
<html>
<head>
<title>Laragon</title>
// the rest of the output is what http://localhost produces
Так что, похоже, бьет HTTP: // локальный а не мой APP_URL?
я нашел это github wiki page и после просмотра папок продавца, связанных с Dusk, я попытался установить прокси, когда драйвер настроен в driver()
функция в файле tests/DuskTestCase.php
,
Я пробовал следующее, но я получаю тот же вывод консоли, как упомянуто ранее:
protected function driver()
{
// same as DesiredCapabilities::chrome() except with proxy info
$capabilities = new DesiredCapabilities([
WebDriverCapabilityType::BROWSER_NAME => WebDriverBrowserType::CHROME,
WebDriverCapabilityType::PLATFORM => WebDriverPlatform::ANY,
WebDriverCapabilityType::PROXY => [
'proxyType' => 'manual',
'httpProxy' => 'http://proxy:8080',
'sslProxy' => 'http://proxy:8080',
],
]);
return RemoteWebDriver::create(
'http://localhost:9515',
$capabilities,
);
// original code after installation
// return RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome());
}
а также …
protected function driver()
{
$capabilities = new DesiredCapabilities([
WebDriverCapabilityType::BROWSER_NAME => WebDriverBrowserType::CHROME,
WebDriverCapabilityType::PLATFORM => WebDriverPlatform::ANY,
WebDriverCapabilityType::PROXY => [
'proxyType' => 'manual',
'httpProxy' => 'http://proxy:8080', // have also tried without specifying http://
'sslProxy' => 'http://proxy:8080', // have also tried without specifying http://
],
]);
return RemoteWebDriver::create(
'http://localhost:9515',
$capabilities,
null,
null,
$http_proxy = 'http://proxy', // have also tried without specifying http://
$http_proxy_port = '8080',
null
);
}
Буду признателен за любую помощь в получении этой работы, спасибо!
Задача ещё не решена.
Других решений пока нет …