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

Selenium Python操作Chrome时Send_keys()无法输入整数值的问题求助

Selenium Python操作Chrome时Send_keys()无法输入整数值的问题求助

Hey 朋友!刚接触Python和Selenium遇到这种问题很正常,咱们先拆解下问题,再一步步解决~

首先你碰到的ElementNotInteractableException,核心原因是你定位到的元素不是可输入的input框,而是td单元格——td本身是不可交互输入的,所以点击和send_keys操作自然会报错。

你之前的代码用XPath定位了'Arrow Shirts'的兄弟td,然后对这个td做操作,但实际能输入数量的是td内部的<input>标签,得把定位目标改成这个输入框才行。

修正后的解决方案

根据你提供的输入框属性,给你两种可靠的定位方式,选一种用就行:

方式1:通过产品名称关联定位输入框(推荐,适配产品位置变化)

这种方式会先找到'Arrow Shirts'的文本元素,再定位它旁边td里的输入框,不管产品在表格里的位置怎么变,都能精准对应:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 等待输入框加载完成并可交互
qty_input = WebDriverWait(driver, 30).until(
    EC.element_to_be_clickable((By.XPATH, "//*[text()='Arrow Shirts']/following-sibling::td//input[@type='text']"))
)

# 先清空输入框(避免原有默认值干扰)
qty_input.clear()
# 输入数量
qty_input.send_keys('3')

方式2:直接通过input的name属性定位

如果这个输入框的name属性是固定不变的,也可以直接用name定位,更简洁:

qty_input = WebDriverWait(driver, 30).until(
    EC.element_to_be_clickable((By.NAME, "ctl00$ContentPlaceHolder1$PRODUCTS$ctl02$tbox"))
)
qty_input.clear()
qty_input.send_keys('3')

额外排查点(如果还是不行的话)

  • 检查页面有没有iframe:如果输入框嵌套在iframe里,得先切换到iframe才能定位元素,比如driver.switch_to.frame("iframe的id或name")
  • 看看有没有加载遮罩/弹窗遮挡:有些页面加载时会有遮罩层,得等遮罩消失后再操作输入框,可以加个等待遮罩不可见的步骤
  • 不需要额外点击td:直接定位到input后,clear+send_keys就够了,除非输入框必须点击才会激活(这种情况很少见)

备注:内容来源于stack exchange,提问作者logziii

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:27:57