Python Selenium使用Select()实现下拉框选项按包含文本匹配
实现模糊匹配下拉选项的方法
Selenium 自带的 Select 类没有提供模糊匹配的内置方法,你可以通过遍历所有下拉选项自定义实现匹配逻辑。
按照你给出的HTML结构,你要搜索的1875是在选项的展示文本中,而非option的value属性值,所以原来的select_by_value方法本来就无法匹配到目标选项,下述实现可以同时适配你的模糊匹配需求和对应场景:
完整实现代码
# 你要搜索的关键词 search_key = "1875" # 实例化下拉框对象 select_element = Select(browser.find_element_by_id('id_asset')) # 遍历所有option选项 for option in select_element.options: # 判断关键词是否在选项显示文本中,如需匹配value可改为 search_key in option.get_attribute('value') if search_key in option.text: # 选中匹配到的选项 option.click() break
可选优化点
- 如需忽略大小写匹配,可将判断条件改为:
if search_key.lower() in option.text.lower(): - 如果你使用的是多选下拉框,需要选中所有符合条件的选项,删除代码中的
break即可。
内容的提问来源于stack exchange,提问作者Reventlow
相关产品推荐
相关产品推荐

