我有一个使用Blazor构建的简单Web表单,我正在尝试与Cypress进行测试。当我尝试在文本字段中键入文本时,首先会正确输入文本,但是大约一秒钟后,它会从屏幕上消失。同样,如果我从下拉列表中选择一个值,则正确的值会在屏幕上闪烁,然后消失。测试通过,并且控制台中没有错误或警告。
如果我在浏览器中输入文字或进行其他更改,则一切正常。我也可以自己在赛普拉斯浏览器中正确输入文本。仅在赛普拉斯正在运行测试时才会出现该问题。
这是.razor文件中我表单的简化版本,可以重现该问题。 TempTableMapping是一个简单的对象,我用于绑定值。
<EditForm Context="formContext" Model="tempTableMapping">
<div class="modal-body">
<div class="form-label-and-field">
<label for="MappingName">Mapping name: </label>
<InputText id="MappingName" class="form-control" @bind-Value="tempTableMapping.MappingName"></InputText>
</div>
</div>
</EditForm>
我使用的赛普拉斯代码:
describe('My Test', function () {
it('Type mapping name', function () {
cy.visit('https://localhost:44374/mapping')
cy.get('#MappingName').type("mapping_name")
})
})
我认为问题可能与Blazor在后台执行的一些Java脚本操作有关,但是我对Blazor的了解不足,无法进一步调试它。
我已经阅读了本文(https://remibou.github.io/Test-a-Blazor-App-with-Cypress/),因此应该可以将Cypress与Blazor一起使用。我还尝试了本文中提到的polyfill-fix,但它对此无济于事,并且可能与该问题无关。我还注意到以下问题(https://github.com/cypress-io/cypress/issues/4635),它可能与此问题有关。
我正在使用赛普拉斯3.7.0版。