赛普拉斯测试中的清除日期字段

时间:2018-11-07 19:16:45

标签: javascript cypress

我有一个HTML输入字段,显示为

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

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

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}

如何清除此输入字段?

2 个答案:

答案 0 :(得分:0)

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


Cypress的.clear()命令是.type({selectall}{backspace})的别名。 Typing on a date input受制于某些validation code,后者只能使用特定的日期字符串。

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

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

答案 1 :(得分:0)

以下为我工作。

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()