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

如何使用Python Selenium操作仅用div实现无options标签的下拉菜单

非原生<select>的自定义div下拉菜单Selenium选择方案

自定义div下拉菜单HTML结构示例

这类没有<options>标签的自定义下拉菜单,无法使用Selenium自带的Select类操作,可按以下步骤实现选项选择:

  • 第一步:触发下拉框展开
    先定位到当前显示选中国家(示例中为Uruguay)的触发div元素,执行点击操作,使下拉选项全部渲染到页面DOM中。推荐添加显示等待保证元素可点击,示例代码:
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 替换为实际的触发元素定位规则
    trigger_ele = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@class, 'dropdown-trigger')]")))
    trigger_ele.click()
    
  • 第二步:定位目标选项
    下拉框展开后,通过文本匹配定位需要选中的国家选项,推荐先定位下拉选项的父容器,再缩小匹配范围避免匹配到页面其他同名文本,示例代码:
    # 替换为实际目标国家名称、选项类名
    target_country = "Argentina"
    option_ele = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, f"//div[contains(@class, 'dropdown-option') and text()='{target_country}']")))
    
  • 第三步:选中目标选项
    直接点击定位到的选项元素即可完成选择,若遇到点击无效的情况可改用JS触发点击:
    # 常规点击
    option_ele.click()
    # 点击无效时用JS点击
    # driver.execute_script("arguments[0].click();", option_ele)
    

常见场景适配

  • 选项超出可视区域:先执行滚动操作把目标选项滚动到可视区再点击:
    driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", option_ele)
    
  • 文本存在前后空格/动态后缀:改用模糊匹配规则contains(text(), '目标国家名')即可。
  • 选中后需要验证:可以获取触发div的文本判断是否和选中的国家一致,确认操作生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:15:03