我有一个下拉列表,onChange
为第二个下拉列表设置选项。
第一个下拉列表触发setState,该setState触发useEffect,该useEffect将现有数据过滤到映射到第二个下拉列表的列表中。
这在浏览器中工作得很好,但在Cypress 10.4中,当第一个下拉列表被选择,并且值被确认已经改变时,第二个下拉列表只有大约5%的时间用新值重新渲染,通常是在点击";重新运行";。在剩下的时间里,它保持默认状态,因此所有依赖它的测试都会失败。
我尝试过的不起作用的东西:
- 显式等待下拉数据API调用(数据在那里;Cypress只是不触发对re-render的反应(
- 第一次选择的
select('val1').trigger('onchange')
- 第一次选择的
select('val1').trigger('blur')
.contains('val1').click({force:true}).click({force:true})
第一选择- 这件事:选择下拉列表项目使用柏树
- 安装柏树反应选择器并尝试
cy.waitForReact()
有人能解决这个问题吗?
使用钩子时,Cypress测试中的光纤线程并不总是完整的。
触发onchange
后尝试让步
select('val1').trigger('onchange')
cy.wait(0) // yields the thread to React