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

Python爬虫:GlassChain网站跳转指定页码时传值失败求助

解决GlassChain页码跳转的Selenium问题

问题根源

点击省略号按钮后弹出的输入框是动态生成的独立元素,你试图给原省略号按钮传值,自然会触发ElementNotInteractableException。另外time.sleep是不稳定的等待方式,容易因页面加载慢导致元素未就绪。

解决方案步骤

  1. 用显式等待替代固定延迟,确保元素可交互后再操作
  2. 点击省略号按钮后,等待动态输入框出现并定位它
  3. 向输入框传入页码后模拟回车操作

修正后的代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(path, options=chrome_options)

driver.get('https://glasschain.org/btc/wallet/100478015')

# 等待并点击Addresses标签
adr_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, 'tab-Addresses'))
)
# 保留原索引逻辑(因页面存在两个同ID元素)
adr_button = driver.find_elements_by_id('tab-Addresses')[1]
driver.execute_script("arguments[0].click();", adr_button)

# 等待并点击省略号按钮
dots_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CLASS_NAME, 'ellipse'))
)
driver.execute_script("arguments[0].click();", dots_button)

# 等待动态输入框出现并定位(可根据实际DOM调整定位符)
page_input = WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located((By.XPATH, "//input[@type='number']"))
)
# 输入页码并回车跳转
page_input.send_keys(5000)
page_input.send_keys(Keys.ENTER)

关键说明

  • 若输入框的xpath定位不准确,可在弹出输入框后右键检查元素,获取更精准的定位符(如css selector或元素专属属性)
  • 显式等待WebDriverWait会在超时前持续检查元素状态,比time.sleep更适配页面加载波动
  • 必须定位到弹出的输入框元素,而非原省略号按钮进行传值操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:55:41