javascript - 如何重置 Cypress 中不可清除的字段?

标签 javascript testing automation cypress

当我尝试使用 cy.clear() 重置字段并且元素是下拉列表时,
它失败了,因为它需要一个有效的可清除元素。When('@userSettings.actions I reset Gender', () => { userSettings.form.getGenderDropdown().clear(); }); Cypress 给出的错误为,/cy.clear() failed because it requires a valid clearable element.

最佳答案

请参阅 How do I clear a multi-select input using Cypress
通常有一个下拉列表的输入,所以你可能会使用的建议 -

userSettings.form.getGenderDropdown()
  .invoke('val', '')
  .trigger('change')

userSettings.form.getGenderDropdown()
  .find('input')
  .invoke('val', '')
  .trigger('change')
其他一些建议浮出水面,但有点可疑——
userSettings.form.getGenderDropdown()
  .type({selectall}{backspace})

userSettings.form.getGenderDropdown()
  .select([])

我在 Cypress 测试中注意到 clear_spec.js
context('works on input type', () => {
  const inputTypes = [
    'date',
    'datetime',
    'datetime-local',
    'email',
    'month',
    'number',
    'password',
    'search',
    'tel',
    'text',
    'time',
    'url',
    'week',
  ]

  inputTypes.forEach((type) => {
    it(type, () => {
      cy.get(`#${type}-with-value`).clear().then(($input) => {
        expect($input.val()).to.equal('')
      })
    })
  })
})
这是一个相当长的有效类型列表,所以如果你在表单控件后面有一个输入,这可能就是你所需要的
userSettings.form.getGenderDropdown()
  .find('input')
  .clear()

关于javascript - 如何重置 Cypress 中不可清除的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65608401/

相关文章:

testing - 如何在 Nuxt3 中使用 vitest 中的路径?

ruby-on-rails - 运行测试时出现莫名其妙的错误

java - 无法使用appium打开或关闭数据

automation - xdotool与山狮和Macbook视网膜

javascript - 分割字符串返回完整字符串

javascript - 创建一个要被一次又一次调用的函数

javascript - 使用 sibling 之间的数据隐藏子组件

javascript - 从函数全局化变量

java - 仅在测试时运行代码

kubernetes - AutoScaling工作负载不会耗尽内存