--- id: LambdaTest/agent-skills/laravel-dusk-skill version: "801f6534" license: MIT install: manual updated: 2026-07-24 --- # laravel-dusk-skill — This skill streamlines end-to-end testing by automating the generation of Laravel Dusk browser test scripts. It enables developers to quickly scaffold and compose test cases for web application workflows, reducing manual test writing overhead and accelerating QA automation cycles. Publisher: LambdaTest · Stars: 339 · Updated: 2026-07-24 Install (manual): `git clone https://github.com/LambdaTest/agent-skills` ## SKILL.md # Laravel Dusk Skill For TestMu AI cloud execution, see [reference/cloud-integration.md](reference/cloud-integration.md) and [shared/testmu-cloud-reference.md](../shared/testmu-cloud-reference.md). ## Core Patterns ### Basic Test ```php browse(function (Browser $browser) { $browser->visit('/login') ->type('email', 'user@test.com') ->type('password', 'password123') ->press('Login') ->assertPathIs('/dashboard') ->assertSee('Welcome'); }); } public function testLoginWithInvalidCredentials(): void { $this->browse(function (Browser $browser) { $browser->visit('/login') ->type('email', 'wrong@test.com') ->type('password', 'wrong') ->press('Login') ->assertPathIs('/login') ->assertSee('Invalid credentials'); }); } } ``` ### Browser Methods ```php // Navigation $browser->visit('/path'); $browser->back(); $browser->forward(); $browser->refresh(); // Forms $browser->type('name', 'value'); $browser->clear('name'); $browser->select('select', 'option'); $browser->check('checkbox'); $browser->uncheck('checkbox'); $browser->radio('radio', 'value'); $browser->attach('file', '/path/to/file'); $browser->press('Button Text'); $browser->click('.selector'); // Assertions $browser->assertSee('text'); $browser->assertDontSee('text'); $browser->assertPathIs('/expected'); $browser->assertUrlIs('http://full-url'); $browser->assertInputValue('name', 'value'); $browser->assertChecked('checkbox'); $browser->assertVisible('.element'); $browser->assertMissing('.element'); $browser->assertTitle('Page Title'); $browser->assertPresent('.selector'); // Waiting $browser->waitFor('.element'); $browser->waitFor('.element', 10); // 10 seconds $browser->waitUntilMissing('.loading'); $browser->waitForText('Loaded'); $browser->waitForLink('Click Me'); $browser->pause(1000); // milliseconds ``` ### Page Objects ```php assertPathIs($this->url()); } public function login(Browser $browser, string $email, string $password): void { $browser->type('email', $email) ->type('password', $password) ->press('Login'); } } // Usage $browser->visit(new LoginPage) ->login($browser, 'user@test.com', 'password123'); ``` ### Cloud: Override `DuskTestCase::driver()` to return `RemoteWebDriver` with LT caps ## Setup: `composer require --dev laravel/dusk && php artisan dusk:install` ### Cloud Execution on TestMu AI Set `.env` variables: `LT_USERNAME`, `LT_ACCESS_KEY` ```php // tests/DuskTestCase.php protected function driver() { $options = (new ChromeOptions)->addArguments(['--disable-gpu', '--no-sandbox']); $ltOptions = [ 'user' => env('LT_USERNAME'), 'accessKey' => env('LT_ACCESS_KEY'), 'build' => 'Laravel Dusk Build', 'name' => $this->getName(), 'platformName' => 'Windows 11', 'video' => true, 'console' => true, ]; $options->setExperimentalOption('LT:Options', $ltOptions); return RemoteWebDriver::create( 'https://hub.lambdatest.com/wd/hub', $options ); } ``` ## Run: `php artisan dusk` or `php artisan dusk tests/Browser/LoginTest.php` ## Deep Patterns See `reference/playbook.md` for production-grade patterns: | Section | What You Get | |---------|-------------| | §1 Project Setup | Installation, DuskTestCase, .env.dusk configuration | | §2 Browser Tests | Login flows, forms, multi-step wizards, multiple browsers | | §3 Page Objects | Page class with elements, custom methods, assertions | | §4 Components | DatePicker, Modal, reusable component pattern | | §5 Advanced Interactions | JavaScript, scrolling, drag-and-drop, waiting strategies | | §6 Database & Data | DatabaseMigrations, factories, screenshots, console logs | | §7 LambdaTest Integration | Remote WebDriver with LT:Options capabilities | | §8 CI/CD Integration | GitHub Actions with MySQL, ChromeDriver, artifact upload | | §9 Debugging Table | 12 common problems with causes and fixes | | §10 Best Practices | 14-item Laravel Dusk testing checklist | [View on SkillFed](https://skillfed.io/LambdaTest/agent-skills/laravel-dusk-skill) · [View on GitHub](https://github.com/LambdaTest/agent-skills)