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

如何在Kraken交易页点击含Buy或Sell属性的tabbed按钮?

代码调整方案

问题分析

你现有代码的XPath仅匹配了按钮的通用class,未区分按钮文本和状态,会默认点击第一个匹配到的按钮,无法满足定向点击Buy/Sell的需求。且前端class多为动态生成,过度依赖class匹配稳定性较差。

实现代码

按你给出的检测规则实现(匹配到disabled的对应按钮时点击)

由于带disabled属性的按钮Selenium原生点击会报错,这里用JS执行点击绕过限制:

from selenium.common.exceptions import NoSuchElementException

try:
    # 匹配带disabled属性的Buy按钮
    buy_disabled_btn = driver.find_element_by_xpath('//button[contains(text(),"Buy") and @disabled]')
    driver.execute_script("arguments[0].click();", buy_disabled_btn)
except NoSuchElementException:
    try:
        # 匹配带disabled属性的Sell按钮
        sell_disabled_btn = driver.find_element_by_xpath('//button[contains(text(),"Sell") and @disabled]')
        driver.execute_script("arguments[0].click();", sell_disabled_btn)
    except NoSuchElementException:
        # 无匹配时的默认逻辑,可按需修改
        pass

常规切换Tab场景实现(更符合实际使用逻辑)

从你给出的页面结构可知,当前激活Tab对应的按钮会带disabled属性,如果你要实现「切换到指定Tab,已在对应Tab则不操作」的逻辑,可用如下代码:

切换到Buy Tab

from selenium.common.exceptions import NoSuchElementException

try:
    # 匹配可点击的Buy按钮(无disabled属性)
    buy_available_btn = driver.find_element_by_xpath('//button[text()="Buy" and not(@disabled)]')
    buy_available_btn.click()
except NoSuchElementException:
    # 已在Buy Tab,无需操作
    pass

切换到Sell Tab

from selenium.common.exceptions import NoSuchElementException

try:
    # 匹配可点击的Sell按钮(无disabled属性)
    sell_available_btn = driver.find_element_by_xpath('//button[text()="Sell" and not(@disabled)]')
    sell_available_btn.click()
except NoSuchElementException:
    # 已在Sell Tab,无需操作
    pass

注意事项

  • 优先使用按钮文本+属性匹配,不要依赖动态生成的class值,可提升代码兼容性
  • 如果页面加载有延迟,可在匹配元素前加隐式等待或显式等待,避免出现元素未加载的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:48:02