You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Playwright中(await page).fill方法运行异常,邮箱字段填充内容错误如何处理

Playwright fill方法输入内容异常拼接问题排查

问题根因

  • 代码中const page = browser.newPage(); 缺少await关键字,browser.newPage()是异步API,返回的是Promise对象而非实际的Page实例。后续所有(await page).xxx写法虽然能拿到Page实例,但会导致多个异步操作的执行时序完全不可控,大概率出现填充密码的操作还未完成、输入焦点未切换,甚至两个fill操作命中同一个输入框的情况,最终两个值拼接得到passmail@mail.ru的异常结果。
  • 重复的(await page)写法没有必要,会进一步放大异步时序混乱的问题。

修正后代码

(async () => {
  const browser = await chromium.launch({
    headless: false,
    slowMo: 5000,
    devtools: true,
  });
  // 补充await直接拿到Page实例
  const page = await browser.newPage();

  // 后续直接用page调用API即可,不需要重复await
  await page.goto("url");

  await page.click("text=Enter");

  // 可选添加等待元素可见逻辑,提升执行稳定性
  await page.waitForSelector('[type="password"]', { state: 'visible' })
  await page.fill('[type="password"]', "pass");

  await page.waitForSelector('[placeholder="Email"]', { state: 'visible' })
  await page.fill('[placeholder="Email"]', "mail@mail.ru");

  await page.click('button:has-text("OK")');

  await page.click('button:has-text("log-in")');
})();

内容的提问来源于stack exchange,提问作者user17344321

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:36:05