代码之家  ›  专栏  ›  技术社区  ›  JD2775

文本输入未使用Playwright在表单中持久化

  •  0
  • JD2775  · 技术社区  · 5 月前

    我正在使用Playwright/Typescript填写一张表格,它有一个日期字段。我以正确的格式输入了日期,它确实填充了文本框,但当我单击“保存”时,我得到了下面的图像

    enter image description here

    当我手动填写此表格时,使用“02/25/25”可以正常工作。 当我使用codegen点击同一日期时,它保存得很好。 然而,当我运行codegen测试时,它在我的代码失败的地方失败了。

    日期字段是下面的HTML。

    enter image description here

    我已经尝试了以下所有定位器,日期填充得很好,只是没有保存

    await this.page.getByLabel('Needed By').fill('02/02/25')
    await this.page.locator('//p-calendar//span').fill('02/25/25')
    await this.page.locator('//p-calendar//span/input').fill('02/25/25')
    

    有什么想法吗?

    1 回复  |  直到 5 月前
        1
  •  1
  •   Lastik    5 月前

    如我所见,在您提供的屏幕截图中,我认为您正在使用 p-calendar 组件。

    请查看组件的源代码 link 请密切关注 input 字段具有 keydown blur 处理程序,但缺乏 ngModelChange 处理程序。这就是为什么剧作家 fill 不会帮你的。它引发了一系列精简的事件(例如。 focus , 输入 ),不包括 键盘按下 .

    为了让你的例子发挥作用,你需要 填满 替换为 pressSequentially 它表现得更“人性化”,并激发了 键盘按下 事件 p日历 组件预期。

    推荐文章