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

Selenium网页爬虫点击失效求助:无法点击表格Quest编号

问题分析与解决方案

你的代码能打印Quest编号但点击失效,核心问题出在这几个地方:

  • 定位的是<td>元素而非实际可点击的<a>链接标签,点击td无法触发跳转逻辑
  • 全局XPath会导致页面回退后出现陈旧元素引用异常,之前定位的元素无法再操作
  • 等待代码存在语法断裂错误,导致等待逻辑失效
  • 缺失time模块导入,代码会报错

修正步骤

  1. 定位真实可点击元素:表格中Quest编号嵌套在<td>内的<a>标签里,直接定位该链接才能触发跳转
  2. 使用相对XPath:基于已加载的表格元素用相对路径定位子元素,避免全局定位引发的元素失效问题
  3. 修复语法错误:将断裂的等待代码合并为完整语句
  4. 补充缺失模块:添加import time导入语句

修改后的完整代码

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
import time  # 导入缺失的time模块

driver = webdriver.Chrome()

# 打开目标网站
driver.get('https://qcpi.questcdn.com/cdn/posting/?group=1950787&provider=1950787')

# 等待表格加载完成
table = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.ID, 'table_id')))

# 循环处理每个Quest编号链接(每次回退后重新获取元素,避免陈旧引用)
while True:
    # 回到列表页后重新获取所有链接
    quest_links = table.find_elements(By.XPATH, './/tbody//tr//td[2]/a')
    if not quest_links:
        break
        
    for link in quest_links:
        quest_number_text = link.text
        print(f"正在处理Quest编号:{quest_number_text}")
        
        # 等待元素可点击后再点击
        WebDriverWait(driver, 10).until(EC.element_to_be_clickable(link)).click()
        
        # 等待详情页核心元素加载完成
        WebDriverWait(driver, 40).until(EC.presence_of_element_located((By.CLASS_NAME, 'posting-second-header')))
        
        # 获取并处理页面源码
        page_source = driver.page_source
        print(f"Quest编号:{quest_number_text}")
        # 可选:将源码保存为本地文件
        # with open(f"{quest_number_text}.html", "w", encoding="utf-8") as f:
        #     f.write(page_source)
        
        # 返回列表页并等待加载完成
        driver.back()
        WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.ID, 'table_id')))

# 关闭浏览器
driver.quit()

额外说明

  • 每次回退后重新获取链接,是因为浏览器回退操作会使之前的元素引用失效,必须重新定位
  • 使用element_to_be_clickable等待元素状态,比直接执行JS点击更稳定,能避免元素被遮挡或未完全加载的问题

内容的提问来源于stack exchange,提问作者SHUBHAM SHEKHAR 20GCEBCS091

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:12:26