<?php namespace App\Providers; use Facebook\WebDriver\Chrome\ChromeOptions; use Facebook\WebDriver\Remote\DesiredCapabilities; use Facebook\WebDriver\Remote\RemoteWebDriver; use Illuminate\Support\ServiceProvider; use Laravel\Dusk\Browser; use Laravel\Dusk\Chrome\ChromeProcess; class BrowserAutomationServiceProvider extends ServiceProvider { /** * Register services. * * @return void */ public function register() { $this->app->singleton('chrome', function () { return (new ChromeProcess())->toProcess(); }); $this->app->bind(\Facebook\WebDriver\WebDriver::class, function () { $options = (new ChromeOptions())->addArguments(config('automation.chrome.arguments')); return RemoteWebDriver::create( 'http://localhost:9515', DesiredCapabilities::chrome()->setCapability( ChromeOptions::CAPABILITY, $options ) ); }); } /** * Bootstrap services. * * @return void */ public function boot() { Browser::$storeScreenshotsAt = config('automation.screenshot_path'); } }