HTML中无选项列表的下拉框如何获取全部选项?
解决动态自定义下拉框的选项获取问题
这种非原生<select>的自定义下拉框,选项默认处于隐藏状态,再加上元素属性动态生成,得按以下步骤操作:
1. 触发下拉框展开
先定位到下拉框的触发区域(比如你提供的带箭头的选中容器),执行点击操作让选项列表显示出来。优先用类名组合定位,避开动态属性干扰:
# Selenium Python示例代码 dropdown_trigger = driver.find_element(By.CSS_SELECTOR, "div.oxd-select-text.oxd-select-text--active") dropdown_trigger.click()
2. 定位并提取所有选项
下拉展开后,选项列表通常会挂载在页面的固定层级容器中,找到选项的统一稳定类名(比如这类组件的选项常带oxd-select-option类),再等待元素加载完成后批量获取:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 等待选项渲染完成 options = WebDriverWait(driver, 10).until( EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div.oxd-select-option")) ) # 提取所有选项文本 all_options = [opt.text for opt in options] print(all_options)
3. 备选方案:跳过前端触发,直接抓数据源
如果点击触发下拉有障碍,还可以用这两种方式:
- 打开浏览器开发者工具的Network面板,点击下拉时抓接口请求,直接解析返回的选项数据;
- 查看页面的
script标签,若有存储选项的全局变量,通过执行JS直接读取:# 执行JS获取页面中的选项数据示例 options_data = driver.execute_script("return window.dropdownSourceData")
内容的提问来源于stack exchange,提问作者Aris Nguyen
相关产品推荐
相关产品推荐

