React Testing Library user-event键盘失效:CTRL+,无法触发AG Grid交互
解决React Testing Library user-event无法触发CTRL+,组合键的问题
先确保AG Grid元素已获得焦点:键盘事件需要目标元素处于聚焦状态才能触发,测试前先通过以下代码让网格容器聚焦:
const gridElement = screen.getByRole('grid'); // 根据实际情况选择定位方式 await user.focus(gridElement);使用正确的键盘组合语法:user-event中模拟“按住修饰键+按下普通字符”需要用
{修饰键>}表示按住,输入字符后用<修饰键/>释放。针对CTRL+,的正确写法是:await user.keyboard('{ctrl>},<ctrl/>');
为什么之前的写法无效?
await user.keyboard('{ctrl},{/ctrl}'):仅单独按下并释放了CTRL键,未同时触发逗号按键await user.keyboard('{ctrl}{,/}{/ctrl}'):语法错误,,/不是user-event识别的有效按键标识await user.keyboard('{ctrl}[,]{/ctrl}'):先按下CTRL再释放,之后才按下逗号,并非同时按住CTRL的状态下触发逗号
如果使用的是user-event v13及更早版本,语法略有不同,可尝试以下写法:
await user.keyboard(['{ctrl}', ',', '{/ctrl}']);
内容的提问来源于stack exchange,提问作者JakeMN
相关产品推荐
相关产品推荐

