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

Selenium/Python中输入框无法清空问题求助

解决输入框预填文本无法清空的问题

你当前用键盘快捷键全选删除的方式失效,大概率是元素交互逻辑的问题,试试下面几种更可靠的解决方案:

方法1:使用Selenium内置的clear()方法

这是官方针对表单输入元素设计的清空方式,最直接稳定:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait  
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.implicitly_wait(0.5)
driver.maximize_window()
driver.get("https://www.futbin.com/fut-card-creator/22")

# 处理评分输入框
rating = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "rating_change")))
rating.click()
rating.clear()  # 直接调用clear()清空
rating.send_keys("90")

# 处理位置输入框
position = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "position_change")))
position.click()
position.clear()
position.send_keys("ST")

方法2:兼容多系统的全选删除

如果clear()无效(比如元素是非标准输入框),试试适配Windows和Mac的全选快捷键:

import sys
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait  
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.implicitly_wait(0.5)
driver.maximize_window()
driver.get("https://www.futbin.com/fut-card-creator/22")

# 处理评分输入框
rating = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "rating_change")))
rating.click()
# 根据系统选择对应全选快捷键
if sys.platform == 'darwin':
    rating.send_keys(Keys.COMMAND + "a")
else:
    rating.send_keys(Keys.CONTROL + "a")
rating.send_keys(Keys.DELETE)  # 用DELETE比BACK_SPACE更稳定
rating.send_keys("90")

# 处理位置输入框
position = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "position_change")))
position.click()
if sys.platform == 'darwin':
    position.send_keys(Keys.COMMAND + "a")
else:
    position.send_keys(Keys.CONTROL + "a")
position.send_keys(Keys.DELETE)
position.send_keys("ST")

方法3:JavaScript强制清空

如果前两种都不生效,直接通过JS修改元素内容(适合contenteditable类型的富文本元素):

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait  
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.implicitly_wait(0.5)
driver.maximize_window()
driver.get("https://www.futbin.com/fut-card-creator/22")

# 处理评分输入框
rating = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "rating_change")))
# 用JS清空元素内容
driver.execute_script("arguments[0].textContent = '';", rating)
rating.send_keys("90")

# 处理位置输入框
position = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "position_change")))
driver.execute_script("arguments[0].textContent = '';", position)
position.send_keys("ST")

优先级建议:优先尝试方法1,这是官方推荐的标准方案;如果元素是富文本类型,方法3的成功率更高。

内容的提问来源于stack exchange,提问作者Devin Smith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:36:27