哈哈
This commit is contained in:
@@ -210,6 +210,28 @@ class BitmartFuturesTransaction:
|
||||
except:
|
||||
return False
|
||||
|
||||
def input_size(self, size: int):
|
||||
"""在数量框输入张数(兼容受控组件:先聚焦、输入、再触发 input 事件)"""
|
||||
try:
|
||||
# 优先用 id,可能不是 input 而是 div/自定义组件
|
||||
ele = self.page.ele('x://*[@id="size_0"]')
|
||||
if not ele:
|
||||
ele = self.page.ele('x://input[@id="size_0"]')
|
||||
if not ele:
|
||||
logger.warning("未找到数量框 size_0")
|
||||
return False
|
||||
time.sleep(0.3)
|
||||
ele.click(by_js=True)
|
||||
time.sleep(0.2)
|
||||
s = str(int(size))
|
||||
# 清空后输入;若页面是 React/Vue 受控组件,再通过 JS 设值并触发事件
|
||||
ele.input(s, clear=True)
|
||||
ele.run_js("this.value = arguments[0]; this.dispatchEvent(new Event('input', { bubbles: true }));", s)
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.warning(f"输入数量失败: {e}")
|
||||
return False
|
||||
|
||||
def 平仓(self):
|
||||
"""平仓操作"""
|
||||
self.click_safe('x://span[normalize-space(text()) ="市价"]')
|
||||
@@ -582,9 +604,10 @@ class BitmartFuturesTransaction:
|
||||
|
||||
# 进入交易页面
|
||||
self.page.get("https://derivatives.bitmart.com/zh-CN/futures/ETHUSDT")
|
||||
time.sleep(1) # 等待交易表单渲染
|
||||
self.click_safe('x://button[normalize-space(text()) ="市价"]')
|
||||
|
||||
self.page.ele('x://*[@id="size_0"]').input(vals=25, clear=True)
|
||||
time.sleep(0.3)
|
||||
self.input_size(self.default_order_size)
|
||||
|
||||
page_start = False
|
||||
|
||||
|
||||
Reference in New Issue
Block a user