| 123456789101112131415161718192021222324252627282930 |
- import type { Page, Locator } from '@playwright/test';
- export class ClassroomPage {
- readonly page: Page;
- readonly loadingText: Locator;
- readonly sidebarScenes: Locator;
- constructor(page: Page) {
- this.page = page;
- this.loadingText = page.getByText('Loading classroom...');
- this.sidebarScenes = page.locator('[data-testid="scene-item"]');
- }
- async goto(stageId: string) {
- await this.page.goto(`/classroom/${stageId}`);
- }
- async waitForLoaded() {
- await this.loadingText.waitFor({ state: 'hidden', timeout: 15_000 });
- }
- async clickScene(index: number) {
- await this.sidebarScenes.nth(index).click();
- }
- /** Get scene title — it's the second span (first is the number badge) */
- getSceneTitle(index: number) {
- return this.sidebarScenes.nth(index).locator('[data-testid="scene-title"]');
- }
- }
|