Search code examples
phplaraveltestinglaravel-dusk

How do you disable Chrome's headless mode for Dusk using Laravel 5.5?


I'd like to be able to see the browser when running my Browser tests using Dusk 2.0 in Laravel 5.5 (specifically so I can use $browser-tinker() and give it some manual commands for debugging purposes).

Does anyone know how to do this? I was hoping some something as simple as:

php artisan dusk --noheadless

Solution

  • Installing Dusk should create a DuskTestCase.php file in /tests/ directory in your app. DuskTestCase class within this file contains a driver() method, which is easy to override (since this is within your app, you can make changes in it directly as it's not part of the package anymore).

    Disabling the headless mode is now as simple as just removing the '--headless' argument from the $options variable in it's addArguments() method on ChromeOptions instance.

    As of Laravel 5.5, the $options variable will look something like this:

    $options = (new ChromeOptions)->addArguments([
        '--disable-gpu',
        //'--headless'
    ]);