但问题是它不断注册
电子邮件,因此不断给出
Email already used
错误。我以为我正在将
async...await
与
for...loop
一起使用,但显然不是。
import { chromium } from 'playwright'
async function main() {
const browser = await chromium.launch({ headless: false })
const page = await browser.newPage()
for (let i = 0; i < 20; i++) {
await page.goto('http://localhost:3000/signup')
await page.waitForLoadState('domcontentloaded')
await page.fill('input[name="email"]', `test${i}@example.com`)
await page.click('button[type="submit"]')
await page.waitForURL('http://localhost:3000/verify-email')
// await page.waitForSelector('#verify-email-form', {
// state: 'visible',
// timeout: 0,
// })
console.log(i)
}
await page.close()
await browser.close()
}
main()
我也尝试了上面注释的代码,但这也不起作用。我的服务器脚本给出了这个:
{ email: '[email protected]' }
{ user: [], unique: true }
{ email: '[email protected]' }
{
user: [
{
id: '01HNPK1GRM5ZHWXZBV1K2R3A9B',
email: '[email protected]',
emailVerified: 0
}
],
unique: false
}
它会检查唯一的电子邮件,因此第一次会给出 unique: true
,但下次它会给出
unique: true
。这不应该发生,因为我将
for...loop
与
async...await
一起使用。它应该看起来像:
{ email: '[email protected]' }
{ user: [], unique: true }
{ email: '[email protected]' }
{ user: [], unique: true }
我做错了什么?它在 Puppeteer 中也不起作用:
import puppeteer from 'puppeteer'
async function main() {
const browser = await puppeteer.launch({
headless: false,
})
const page = await browser.newPage()
for (let i = 0; i < 20; i++) {
await page.goto('http://localhost:3000/signup')
await page.type('input[name="email"]', `test${i}@example.com`)
await page.click('button[type="submit"]')
await page.waitForNavigation()
// await page.waitForSelector('#verify-email-form', {
// state: 'visible',
// timeout: 0,
// })
console.log(i)
}
await page.close()
await browser.close()
}
Fwiw,我在 Next.js 14 中使用 React Server Actions -> https://github.com/deadcoder0904/next-14-lucia-v3-sqlite-drizzle-conform-zod-email-verification-otp-服务器操作/