Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: 使用 CDP nativeVirtualKeyCode 模拟键盘输入时,event.keyCode 值不正确 #476

Open
LinLL opened this issue Dec 30, 2024 · 0 comments

Comments

@LinLL
Copy link

LinLL commented Dec 30, 2024

Bug: 使用 CDP nativeVirtualKeyCode 模拟键盘输入时,event.keyCode 值不正确

问题描述

在使用 actions 的 type 方法模拟键盘输入时,通过 CDP(Chrome DevTools Protocol)传入的 nativeVirtualKeyCode 参数没有正确反映到键盘事件的 event.keyCode 属性中。这导致在某些依赖 keyCode 的网页上,模拟键盘输入出现异常。

复现步骤

  1. 使用 DrissionPage 打开网页
  2. 获取一个可接受键盘输入的元素
  3. 使用 actions.type() 模拟键盘输入
  4. 使用 JavaScript 监控键盘事件
// 监控键盘事件
document.addEventListener('keydown', function(event) {
console.log('按键:', event.key);
console.log('键码:', event.keyCode); // 键码为 0 或不正确
});

预期行为

键盘事件中的 event.keyCode 应该与传入 CDP 的 nativeVirtualKeyCode 值相匹配。

实际行为

event.keyCode 要么为 0,要么与传入的 nativeVirtualKeyCode 值不匹配,导致在依赖 keyCode 的页面上键盘模拟失败。

示例代码

from DrissionPage import ChromiumPage
page = ChromiumPage()
element = page.ele('input')

模拟回车键按下

环境信息

  • DrissionPage 版本:[4.1.0.14]
  • Python 版本:3.9
  • 操作系统:[macOS Monterey 12.6.6]
  • 浏览器:Chrome [131.0.6778.205]

补充说明

这个问题主要影响那些依赖 event.keyCode 进行键盘事件处理的网页应用,比如文本编辑器或表单提交功能。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant