Level 1
I had the same problem as you and ended up on this site.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Driving me crazy. I've checked the entire machine and these are the only relevant chromedrivers. Can I specify the chromedriver path somehow? Can I downgrade Chrome?
me@MacBookAir chood % which chromedriver
/opt/homebrew/bin/chromedriver
me@MacBookAir chood % /opt/homebrew/bin/chromedriver -v
ChromeDriver 133.0.6943.53 (9a80935019b0925b01cc21d254da203bc3986f04-refs/branch-heads/6943@{#1389})
me@MacBookAir chood % ./vendor/laravel/dusk/bin/chromedriver -v
ChromeDriver 133.0.6943.53 (9a80935019b0925b01cc21d254da203bc3986f04-refs/branch-heads/6943@{#1389})
me@MacBookAir chood % php artisan dusk:chrome-driver 133
INFO ChromeDriver binary successfully installed for version 133.0.6943.98.
But, behold...
me@MacBookAir chood % php artisan dusk
FAIL Tests\Browser\HomepageTest
⨯ welcome 4.73s
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
FAILED Tests\Browser\HomepageTest > welcome SessionNotCreatedException
session not created: This version of ChromeDriver only supports Chrome version 131
Current browser version is 133.0.6943.54 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
at vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:130
126▕ throw new NoSuchShadowRootException($message, $results);
127▕ case 'script timeout':
128▕ throw new ScriptTimeoutException($message, $results);
129▕ case 'session not created':
➜ 130▕ throw new SessionNotCreatedException($message, $results);
131▕ case 'stale element reference':
132▕ throw new StaleElementReferenceException($message, $results);
133▕ case 'detached shadow root':
134▕ throw new DetachedShadowRootException($message, $results);
+3 vendor frames
4 tests/DuskTestCase.php:40
+1 vendor frames
6 tests/Browser/HomepageTest.php:13
Tests: 1 failed (0 assertions)
Duration: 4.79s
tests/Testcase.php
namespace Tests;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
abstract class TestCase extends BaseTestCase
{
}
tests/DuskTestCase.php
namespace Tests;
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Illuminate\Support\Collection;
use Laravel\Dusk\TestCase as BaseTestCase;
use PHPUnit\Framework\Attributes\BeforeClass;
abstract class DuskTestCase extends BaseTestCase
{
/**
* Prepare for Dusk test execution.
*/
#[BeforeClass]
public static function prepare(): void
{
if (! static::runningInSail()) {
static::startChromeDriver(['--port=9515']);
}
}
/**
* Create the RemoteWebDriver instance.
*/
protected function driver(): RemoteWebDriver
{
$options = (new ChromeOptions)->addArguments(collect([
$this->shouldStartMaximized() ? '--start-maximized' : '--window-size=1920,1080',
'--disable-search-engine-choice-screen',
])->unless($this->hasHeadlessDisabled(), function (Collection $items) {
return $items->merge([
'--disable-gpu',
'--headless=new',
]);
})->all());
return RemoteWebDriver::create(
$_ENV['DUSK_DRIVER_URL'] ?? env('DUSK_DRIVER_URL') ?? 'http://localhost:9515',
DesiredCapabilities::chrome()->setCapability(
ChromeOptions::CAPABILITY, $options
)
);
}
}
tests/Browser/HomepageTest.php
namespace Tests\Browser;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;
class HomepageTest extends DuskTestCase
{
public function testWelcome()
{
$this->browse(function (Browser $browser) {
$browser->visit('/')->assertSee('Hello, world');
});
}
}
Please or to participate in this conversation.