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

如何使用Selenium Python选择含input标签的下拉框值

解决Selenium定位MUI Autocomplete下拉框选项的问题

这类下拉框是Material UI的Autocomplete组件,并非原生<select>标签,点击后会在页面生成临时的选项列表(通常挂载在<body>下的独立<div>中),你的现有代码仅触发了下拉框展开,未定位到实际选项元素,因此无法完成选中操作。

以下是两种可行解决方案:

方案一:直接定位选项元素点击

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 1. 定位输入框并点击展开选项列表
input_element = WebDriverWait(self.driver, 10).until(
    EC.element_to_be_clickable((By.ID, "asset-instrument-sub-type"))
)
input_element.click()

# 2. 等待选项加载完成,定位"Equity"选项并点击
equity_option = WebDriverWait(self.driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//div[contains(@class, 'MuiAutocomplete-option') and text()='Equity']"))
)
equity_option.click()

方案二:输入文本后回车确认

部分Autocomplete组件支持输入匹配文本后回车确认,这种方式更简洁:

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

input_element = WebDriverWait(self.driver, 10).until(
    EC.element_to_be_clickable((By.ID, "asset-instrument-sub-type"))
)
input_element.click()
input_element.send_keys("Equity")
input_element.send_keys(Keys.ENTER)

注意事项

  • 选项的class可能因项目样式定制有所变动,可通过浏览器开发者工具(F12)查看展开后选项的实际class属性,替换代码中的MuiAutocomplete-option
  • 若文本匹配定位失效,可检查选项元素的data-value等属性,调整XPath为//div[contains(@class, 'MuiAutocomplete-option') and @data-value='Equity']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:57:07