在 Cypress 中输入日期按 Enter

Pressing Enter on a date input in Cypress

我有一个应用程序,其中包含一些我正在尝试自动化的输入字段。这些字段的要点是我应该能够双击一个字段,输入一个新值,然后按 Enter 提交该值,这会发送一个 PUT 请求并关闭输入字段。这适用于除日期以外的任何输入类型。

到目前为止,我已经尝试过:

  • 使用 cy.type('{enter}')。这给出了 Typing into a date input with cy.type() requires a valid date in the format 'yyyy-MM-dd'. You passed: {enter}

  • 使用 cy.trigger() 为回车键发送 keydown 事件。这有效,因为它成功关闭了输入字段,但它以某种方式不发送 PUT 请求。

  • 在父元素上按回车键。与使用 cy.trigger()

    相同

奇怪的是,自己手动打开输入字段,输入日期并按 Enter 即可发送请求。在我看来,在没有赛普拉斯将其解释为我试图在日期字段中实际输入无效字符的情况下,以编程方式按 Enter 提交字段存在一些问题。文档确实明确指出日期字段中不允许使用特殊字符。

不能发布任何代码,因为这是公司。


我曾尝试让它发挥作用,但目前根本无法完成。这样的事情应该可以工作:

1
2
3
4
5
6
it.only('test', function () {
    cy.visit('https://www.html5tutorial.info/html5-date.php')
    cy.get('input')
      .type('2009-12-12')
      .type('{enter}')
  })

但事实并非如此,所以我开始深入研究一堆问题并找到了这个:
https://github.com/cypress-io/cypress/issues/3405。这是关于不同的输入类型,但我相信它与您的问题有关。


您应该删除"日期"属性,如下所示:

1
 cy.get('input').invoke('removeAttr','type').type('2009-12-12{enter}');