我正在使用 Cypress 为模态框内的表单编写集成测试,其特殊性在于它具有固定的高度、固定的页眉和固定的页脚,这意味着表单可以滚动并始终部分覆盖这些内容。
<Container>
<Modal width={width}>
<Header/> // fixed on top pf modal
<ModalBody/> // scrolling up and down underneath
<Footer/> // fixed on bottom of modal
</Modal>
<Background onClick={onClose} />
</Container>
这在使用 Cypress 进行测试时被证明是有问题的,因为我查询输入数据的输入元素在我这样做时会进入模式的最顶部,这意味着它们会被顶部横幅覆盖并且无法与之交互。
我认为模式和表单的当前设置应该更改为更好的编码和更容易测试,但我想知道现在我是否可以在选择它们后将输入滚动到视图中。
在注释掉的代码中,您可以看到我希望的逻辑类型。我尝试了几种滚动、查询和触发事件的组合,但均无济于事。
it("completes protocol", () => {
cy.findByRole("button", { name: /Complete protocol/i }).click();
cy.findByLabelText(/Hours/i).type(10);
// cy.get('input[type="number"]')
// .then((elements) => {
// elements[0].scrollIntoView({ offset: { top: 100, left: 0 } });
// elements[0].type(10);
// })
});