我有一个react应用程序,其中我动态地在文档上添加了一个事件侦听器,它在按下右/左箭头键时执行。
当我尝试在cypress open-ct中通过按箭头键手动触发它时,它可以工作,但是当我在测试中编写它来触发它时,如cy.get('body').trigger('keydown', { keyCode: 39 });
,函数不会触发,是否有其他方法可以触发document.addEventListener添加的函数?
componentDidUpdate(prevProps) {
if (something something) {
document.addEventListener('keydown', this.handleLeftRightKeys);
} else {
document.removeEventListener('keydown', this.handleLeftRightKeys);
}
}
handleLeftRightKeys(event) {
if (event.key === 'ArrowLeft') {
this.prev();
} else if (event.key === 'ArrowRight') {
this.next();
}
}
字符串
我希望这些prev()和next()函数能够从Cypress测试文件中触发。怎么办?
2条答案
按热度按时间yebdmbv41#
您在
body
元素上触发,但事件侦听器在document
上。也许会有泡沫,但如果没有,也值得一试字符串
5vf7fwbs2#
找到答案了。必须将keyCode添加到eventListener。
变更
字符串
至
型