From 72253b139191f0c0a1f3d6a41f1e93b934d19339 Mon Sep 17 00:00:00 2001 From: wsy182 <2392948297@qq.com> Date: Tue, 24 Mar 2026 15:29:32 +0800 Subject: [PATCH] Update open-four-players.mjs --- scripts/open-four-players.mjs | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/scripts/open-four-players.mjs b/scripts/open-four-players.mjs index ba3f80b..838f094 100644 --- a/scripts/open-four-players.mjs +++ b/scripts/open-four-players.mjs @@ -49,7 +49,7 @@ async function login(page, player) { page.waitForURL('**/hall', { timeout: 15000 }), submitButton.click(), ]) - await page.getByText(`用户名:${player.username}`).waitFor({ timeout: 15000 }) + await page.getByRole('heading', { name: '麻将游戏大厅' }).waitFor({ timeout: 15000 }) log(`logged in ${player.username}`) } @@ -64,24 +64,12 @@ async function createRoom(page) { if (!roomId) { throw new Error('Failed to read room id') } - return { roomId, roomName } -} - -async function ownerEnterRoom(page, roomId) { - log(`owner enter room ${roomId}`) await Promise.all([ page.waitForURL(`**/game/chengdu/${roomId}*`, { timeout: 15000 }), page.getByRole('button', { name: '进入房间' }).click(), ]) log(`owner entered room ${roomId}`) -} - -async function ownerStartGame(page) { - log('owner start game') - const startButton = page.getByRole('button', { name: '开始游戏' }) - await startButton.waitFor({ timeout: 15000 }) - await startButton.click() - log('owner clicked start game') + return { roomId, roomName } } async function joinRoom(page, roomId, username) { @@ -134,23 +122,20 @@ async function main() { } } - await ownerEnterRoom(owner.page, roomId) - await new Promise((resolve) => setTimeout(resolve, 3000)) - await ownerStartGame(owner.page) - await new Promise((resolve) => setTimeout(resolve, 8000)) const playersSnapshot = [] for (const session of sessions) { + await session.page.bringToFront() + await new Promise((resolve) => setTimeout(resolve, 2000)) let snapshot = await snapshotPage(session) if (!snapshot.started) { - log(`reload game page for ${session.username}`) - await session.page.reload({ waitUntil: 'domcontentloaded' }) + log(`focus retry for ${session.username}`) + await session.page.bringToFront() await new Promise((resolve) => setTimeout(resolve, 3000)) snapshot = await snapshotPage(session) } playersSnapshot.push(snapshot) - await session.page.bringToFront() } console.log(JSON.stringify({