Python爬虫:GlassChain网站跳转指定页码时传值失败求助
解决GlassChain页码跳转的Selenium问题
问题根源
点击省略号按钮后弹出的输入框是动态生成的独立元素,你试图给原省略号按钮传值,自然会触发ElementNotInteractableException。另外time.sleep是不稳定的等待方式,容易因页面加载慢导致元素未就绪。
解决方案步骤
- 用显式等待替代固定延迟,确保元素可交互后再操作
- 点击省略号按钮后,等待动态输入框出现并定位它
- 向输入框传入页码后模拟回车操作
修正后的代码
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
相关产品推荐
相关产品推荐

