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

如何抓取含按钮/菜单项的网页?设置每页50行代码报错求助

代码问题排查与修正方案

核心问题1:XPATH语法错误

你的XPATH表达式//[@class='btn btn-default dropdown-toggle']存在语法错误:

  • XPATH的节点选择器部分缺失,必须指定节点类型(比如*匹配任意节点,或者具体的button标签),正确写法应为//*[@class='btn btn-default dropdown-toggle']或//button[@class='btn btn-default dropdown-toggle']。

核心问题2:错误使用Select类

Select类是Selenium专门用于操作原生HTML <select>标签下拉框的工具,但你定位的元素是Bootstrap风格的按钮式下拉菜单(带dropdown-toggle类),这类下拉菜单本质是按钮+隐藏的<ul>/<li>列表,并非原生<select>元素,因此调用Select类的方法完全无效。

修正思路

针对Bootstrap下拉菜单,正确操作步骤应为:

  1. 等待并点击下拉按钮,展开菜单列表;
  2. 等待目标选项(显示文本为'50'的元素)可点击,然后点击它。

示例代码:

# 点击下拉按钮展开菜单
dropdown_btn = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-default dropdown-toggle']")))
dropdown_btn.click()

# 点击显示为'50'的选项
option_50 = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[contains(@class, 'dropdown-menu')]//*[text()='50']")))
option_50.click()

注意:可根据实际页面结构调整XPATH(比如调整<ul>的定位条件,或者选项的文本匹配方式)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:24:21