import { expect, test } from '@playwright/test'; import { collectRobotResults, runWebsiteCommand } from './website.helpers'; test('主工作台:加载预设、语言命名目标及连续自由坐标抓放', async ({ page }, info) => { await collectRobotResults(page); await page.goto('/'); await page.getByRole('tab', { name: '控制台', exact: true }).click(); await page.getByRole('button', { name: '机器人语言控制', exact: true }).click(); const panel = page.getByLabel('机器人语言控制', { exact: true }); await expect(panel.locator('input[type=password], details')).toHaveCount(0); await panel.getByRole('button', { name: '载入预设场景' }).click(); await expect(panel.getByRole('status')).toContainText('预设已载入并暂停', { timeout: 90000 }); const first = await runWebsiteCommand(page, '把方块搬到 B 区', info, 'named-target'); expect(first.goal).toEqual([0.257, 0.75, 0.128]); expect(first.sample.onGoalSupport).toBe(true); expect(first.transported).toBeGreaterThan(0.7); expect(first.llmCalls).toBe(2); expect(first.jevCalls).toBe(14); expect(first.qualityScore).toBe(75); const second = await runWebsiteCommand( page, '把方块搬到 (0.25,0.50) 米', info, 'coordinate-target', ); expect(second.goal).toEqual([0.25, 0.5, 0.128]); expect(second.sample.time).toBeGreaterThan(first.sample.time); expect(second.transported).toBeGreaterThan(0.2); expect(second.runId).not.toBe(first.runId); await expect(page.getByRole('button', { name: '强化学习任务', exact: true })).toBeVisible(); await page.screenshot({ path: info.outputPath('language-workbench.png') }); });