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
相关产品推荐
相关产品推荐

