【问题标题】:cypress input field wont get cleared赛普拉斯输入字段不会被清除
【发布时间】:2019-02-04 15:21:53
【问题描述】:

我有一个输入字段:

<input value="0">

我可以在 cypress 中轻松地 clear() 和 type("123") 。 值得到更新,一切都很好。

另一方面,我无法更新如下所示的预填充输入字段,因为 cypress 在值的开头写入了我的 .type("123") 值。

<input value="1500000">

我的方法如下:

   .find("input")
            .clear()
            .type(`${input}{enter}`)

字段的更改会触发 redux 操作,我们使用 redux 进行整个状态处理。会不会有问题?

否则,你知道这个问题吗?

【问题讨论】:

    标签: reactjs redux cypress


    【解决方案1】:

    尝试添加一个断言让赛普拉斯“等待”输入清除:

    .clear().should('have.value', '')
    .type(...)
    

    【讨论】:

    • 我试过这个,它有时可以工作,在某些情况下,它也不能说它不等于空字符串('')
    【解决方案2】:

    我使用here 找到的 HTML 进行了测试,一切正常(在屏幕截图中我写了“Stefano”而不是默认值)

    当您引用 React 时,您说到点子上了:这种状态更改需要更多的工作才能按预期运行,因为 React(和 Vue 等)显然会覆盖 DOM 中的所有内容。

    您面临一个常见问题,即一旦触发事件,React 就会重新渲染组件...因此您必须更改 React 组件中的输入值/defaultValue 管理,Google 会为它找到一个太多的解决方案了?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多