Update open-four-players.mjs

This commit is contained in:
2026-03-24 15:29:32 +08:00
parent 58fe43607a
commit 72253b1391

View File

@@ -49,7 +49,7 @@ async function login(page, player) {
page.waitForURL('**/hall', { timeout: 15000 }), page.waitForURL('**/hall', { timeout: 15000 }),
submitButton.click(), submitButton.click(),
]) ])
await page.getByText(`用户名:${player.username}`).waitFor({ timeout: 15000 }) await page.getByRole('heading', { name: '麻将游戏大厅' }).waitFor({ timeout: 15000 })
log(`logged in ${player.username}`) log(`logged in ${player.username}`)
} }
@@ -64,24 +64,12 @@ async function createRoom(page) {
if (!roomId) { if (!roomId) {
throw new Error('Failed to read room id') throw new Error('Failed to read room id')
} }
return { roomId, roomName }
}
async function ownerEnterRoom(page, roomId) {
log(`owner enter room ${roomId}`)
await Promise.all([ await Promise.all([
page.waitForURL(`**/game/chengdu/${roomId}*`, { timeout: 15000 }), page.waitForURL(`**/game/chengdu/${roomId}*`, { timeout: 15000 }),
page.getByRole('button', { name: '进入房间' }).click(), page.getByRole('button', { name: '进入房间' }).click(),
]) ])
log(`owner entered room ${roomId}`) log(`owner entered room ${roomId}`)
} return { roomId, roomName }
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')
} }
async function joinRoom(page, roomId, username) { 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)) await new Promise((resolve) => setTimeout(resolve, 8000))
const playersSnapshot = [] const playersSnapshot = []
for (const session of sessions) { for (const session of sessions) {
await session.page.bringToFront()
await new Promise((resolve) => setTimeout(resolve, 2000))
let snapshot = await snapshotPage(session) let snapshot = await snapshotPage(session)
if (!snapshot.started) { if (!snapshot.started) {
log(`reload game page for ${session.username}`) log(`focus retry for ${session.username}`)
await session.page.reload({ waitUntil: 'domcontentloaded' }) await session.page.bringToFront()
await new Promise((resolve) => setTimeout(resolve, 3000)) await new Promise((resolve) => setTimeout(resolve, 3000))
snapshot = await snapshotPage(session) snapshot = await snapshotPage(session)
} }
playersSnapshot.push(snapshot) playersSnapshot.push(snapshot)
await session.page.bringToFront()
} }
console.log(JSON.stringify({ console.log(JSON.stringify({