【问题标题】:Clear date field in cypress test清除柏树测试中的日期字段
【发布时间】:2019-03-06 07:57:36
【问题描述】:

我有一个呈现为的 HTML 输入字段

<input id="dateId"
  placeholder="YYYY-MM-DD"
  type="date"
  pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}"
>

我想在 cypress (v3.1.0) 中运行测试以将数据输入到字段中,然后清除该字段。我能够在该字段中输入数据。但是,当我尝试清除字段时,cypress 会引发错误。

cy.get('#dateId').type('2018-12-16');
// Save and reload
cy.get('#dateId').should('have.value', '2018-12-16');
// Some more testing

cy.get('#dateId').clear();

CypressError:使用 cy.type() 输入日期输入需要格式为“yyyy-MM-dd”的有效日期。你通过了:{selectall}{del}

如何清除此输入字段?

【问题讨论】:

  • 我不知道图书馆,但它不是从0开始的月份吗?所以你的月份无效?

标签: javascript cypress


【解决方案1】:

下面对我有用。

cy.get('.date_of_birth .date-picker input').type('01/06/1992') cy.get(".date_of_birth .date-picker input").should("have.value", "01/06/1992") cy.get(".date_of_birth .date-picker input").clear()

【讨论】:

  • 虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
  • 看起来我的问题在 3.1.5 版本中得到了解决!
【解决方案2】:

更新:此问题已被fixed 并在赛普拉斯3.1.5 中发布


赛普拉斯的.clear() 命令是.type({selectall}{backspace}) 的别名。 Typing on a date input 受制于一些 validation code,它只能采用特定的日期字符串。

解决方法是更改​​元素值。这可以通过调用 jQuery val() 命令来完成。

cy.get('#dateInput').invoke('val', '');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    相关资源
    最近更新 更多