You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium send_keys函数在VNC环境下忽略空格的问题求助

解决VNC下Selenium Chrome send_keys忽略空格的问题

以下是几个经过验证的解决步骤:

  • 检查VNC键盘布局
    VNC会话的键盘布局错误是常见诱因。在VNC窗口中打开系统设置→键盘,确认当前布局为你使用的类型(比如美式英文),之后重启VNC会话再测试脚本。

  • 禁用Chrome自动填充功能
    Chrome的表单自动填充可能干扰send_keys的输入行为,启动浏览器时添加禁用参数:

    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.by import By
    from selenium import webdriver
    
    chrome_options = Options()
    # 禁用表单自动填充相关功能
    chrome_options.add_argument("--disable-form-autofill")
    chrome_options.add_argument("--autofill-profile-management=off")
    
    driver = webdriver.Chrome(options=chrome_options)
    
  • 改用JavaScript注入输入
    绕过Selenium的send_keys方法,直接通过JavaScript设置元素值,同时可触发输入事件确保页面识别:

    target_element = driver.find_element(By.CSS_SELECTOR, "your-selector")
    # 设置文本内容(包含空格)
    driver.execute_script("arguments[0].value = '1 2 3';", target_element)
    # 触发input事件(如果页面依赖该事件更新状态)
    driver.execute_script("arguments[0].dispatchEvent(new Event('input'));", target_element)
    
  • 同步Chrome与ChromeDriver版本
    版本不兼容可能引发输入异常,在VPS上执行以下命令更新:

    # 更新Chrome浏览器
    sudo apt update && sudo apt install --only-upgrade google-chrome-stable
    # 查看当前Chrome版本
    google-chrome --version
    

    根据输出的版本号,下载对应版本的ChromeDriver,解压后放到/usr/local/bin目录下,确保ChromeDriver可被系统调用。

内容的提问来源于stack exchange,提问作者Rory Ramp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 08:25:20