diff --git a/apps/web/e2e/core-generation.spec.ts b/apps/web/e2e/core-generation.spec.ts index cb2fd867e..da3dec340 100755 --- a/apps/web/e2e/core-generation.spec.ts +++ b/apps/web/e2e/core-generation.spec.ts @@ -190,11 +190,12 @@ test.describe("Core generation flow", () => { const librarySelect = page.locator("select").first() await librarySelect.selectOption({ label: libraryName }) // 新 UI: 素材以 9:16 竖屏卡片展示,点击卡片选中 - const materialCard = page.getByText(sourceFileName).locator("..") + // 注意:卡片中心是播放按钮(stopPropagation 会阻止选中),所以点击左上角避开 + const materialCard = page.getByTestId("material-card").filter({ hasText: sourceFileName }) await expect(materialCard).toBeVisible({ timeout: 10_000 }) - await materialCard.click() - // 验证选中:卡片应出现勾选标记 ✓ - await expect(materialCard.getByText("✓")).toBeVisible({ timeout: 5_000 }) + await materialCard.click({ position: { x: 15, y: 15 } }) + // 验证选中:卡片应出现勾选标记(用 testid 定位,避免 ✓ 字符文本匹配不稳定) + await expect(materialCard.getByTestId("material-card-check")).toBeVisible({ timeout: 5_000 }) await page.getByRole("button", { name: "下一步" }).click() // Step 3: voice (可选步骤,新注册用户无配音素材,直接跳过) diff --git a/apps/web/src/pages/generate/components/material/ManualMaterialList.tsx b/apps/web/src/pages/generate/components/material/ManualMaterialList.tsx index 240f4cffd..1baed4ddb 100644 --- a/apps/web/src/pages/generate/components/material/ManualMaterialList.tsx +++ b/apps/web/src/pages/generate/components/material/ManualMaterialList.tsx @@ -70,6 +70,7 @@ const MaterialCard: React.FC<{ return (