browse(function (Browser $browser) { // 1. 訪問首頁 $browser->visit('/') ->waitFor('.landing-carousel', 5) ->assertVisible('.landing-carousel'); // 2. 取得初始記憶體快照(需要 CDP 支援) // 注意:Laravel Dusk 預設不支援 CDP,這裡提供概念性程式碼 // 3. 離開頁面 $browser->visit('/about') ->waitFor('.hero', 5); // 4. 回到首頁 $browser->visit('/') ->waitFor('.landing-carousel', 5); // 5. 離開並回來(重複 5 次) for ($i = 0; $i < 5; $i++) { $browser->visit('/about')->pause(500); $browser->visit('/')->pause(500); } // 6. 檢查 console 沒有 cleanup 相關錯誤 $logs = $browser->driver->manage()->getLog('browser'); $errors = array_filter($logs, function ($log) { return $log['level'] === 'SEVERE'; }); $this->assertEmpty( $errors, 'Console 不應該有嚴重錯誤訊息' ); }); } /** * 測試 carousel 互動功能正常 * * @return void */ public function testCarouselInteraction() { $this->browse(function (Browser $browser) { $browser->visit('/') ->waitFor('.landing-carousel', 5) ->assertVisible('.carousel-control--next') ->assertVisible('.carousel-control--prev'); // 測試下一頁按鈕 $browser->click('.carousel-control--next') ->pause(500) ->assertPresent('[data-scroll-flag]'); // 測試上一頁按鈕 $browser->click('.carousel-control--prev') ->pause(500) ->assertPresent('[data-scroll-flag]'); }); } }