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

Selenium send_keys发送浮点数值异常:0.7795变为7795求助

解决Selenium向hotbit.io价格输入框发送小数被异常转换的问题

问题原因

hotbit.io的价格输入框存在自定义JS输入处理逻辑,会对send_keys的批量输入做异常格式化(比如误删小数点),导致发送0.7795变成7795、0.1变成1的情况。

解决方案

1. 逐个字符模拟键盘输入

绕过批量输入的格式化逻辑,拆分字符串逐个发送:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

price_str = "0.7795"
input_elem = driver.find_element(By.CSS_SELECTOR, "你的价格输入框选择器")
input_elem.clear()

# 逐个字符输入
for char in price_str:
    ActionChains(driver).send_keys_to_element(input_elem, char).perform()

2. 通过JS直接设置输入框值

直接操作DOM设置value属性,同时触发change事件确保网站识别值的变化:

from selenium.webdriver.common.by import By

price_str = "0.7795"
input_elem = driver.find_element(By.CSS_SELECTOR, "你的价格输入框选择器")
# 直接设置输入框value
driver.execute_script("arguments[0].value = arguments[1];", input_elem, price_str)
# 触发change事件,同步网站内部状态
driver.execute_script("arguments[0].dispatchEvent(new Event('change'));", input_elem)

3. 剪贴板粘贴方式

利用系统剪贴板粘贴内容,绕过输入框的自定义处理:

import pyperclip
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

price_str = "0.7795"
pyperclip.copy(price_str)

input_elem = driver.find_element(By.CSS_SELECTOR, "你的价格输入框选择器")
input_elem.clear()

# Windows用Ctrl+V,Mac环境替换为Keys.COMMAND
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:30:59