This commit is contained in:
luk
2026-07-31 06:45:21 +08:00
parent e3ffcbc06c
commit cabd68bd87

View File

@@ -1,6 +1,10 @@
import 'dotenv/config' import 'dotenv/config'
import { chromium } from 'playwright' import { chromium } from 'playwright'
// dotenv.config({
// path: '.env.local'
// })
const email = process.env.UNICLOUD_EMAIL const email = process.env.UNICLOUD_EMAIL
const password = process.env.UNICLOUD_PASSWORD const password = process.env.UNICLOUD_PASSWORD
@@ -11,7 +15,9 @@ if (!email || !password) {
async function waitForLoginFrame (page, timeoutMs = 30000) { async function waitForLoginFrame (page, timeoutMs = 30000) {
const start = Date.now() const start = Date.now()
while (Date.now() - start < timeoutMs) { while (Date.now() - start < timeoutMs) {
const f = page.frames().find(fr => fr.url().includes('account.dcloud.net.cn')) const f = page
.frames()
.find(fr => fr.url().includes('account.dcloud.net.cn'))
if (f) return f if (f) return f
await page.waitForTimeout(500) await page.waitForTimeout(500)
} }
@@ -61,7 +67,10 @@ async function waitForUrl (page, predicate, timeoutMs = 30000) {
await loginFrame.getByText('登录', { exact: true }).click() await loginFrame.getByText('登录', { exact: true }).click()
await waitForUrl(page, u => u.includes('unicloud.dcloud.net.cn') && !u.includes('/login/login')) await waitForUrl(
page,
u => u.includes('unicloud.dcloud.net.cn') && !u.includes('/login/login')
)
await page.waitForTimeout(5000) await page.waitForTimeout(5000)
console.log('Login successful. URL:', page.url()) console.log('Login successful. URL:', page.url())
@@ -88,11 +97,7 @@ async function waitForUrl (page, predicate, timeoutMs = 30000) {
await buyBtn.waitFor({ timeout: 30000 }) await buyBtn.waitFor({ timeout: 30000 })
await buyBtn.click() await buyBtn.click()
await waitForUrl( await waitForUrl(orderPage, u => u.includes('order-payment'), 30000)
orderPage,
u => u.includes('order-payment'),
30000
)
await orderPage.waitForTimeout(3000) await orderPage.waitForTimeout(3000)
console.log('Payment page ready:', orderPage.url()) console.log('Payment page ready:', orderPage.url())